c# - Application Insights - 未收集第一个跟踪

标签 c# azure logging azure-application-insights

我有一个控制台应用程序将一些日志发送到 App Insights:

public static async Task Main(string[] args)
{
    Logger.Log("test1");
    Logger.Log("test2");
    Logger.Log("test3");
    ...
}

记录器看起来像这样:

public static class Logger
{
    private static TelemetryClient _logger;

    public static void Log(string message)
    {
        _GetLogger().TrackTrace(message);
        _Flush();
    }

    private static TelemetryClient _GetLogger()
    {
        if (_logger is null) _logger = _GetTelemetryClient();
        return _logger;
    }

    ...
}

我发现第一条消息没有到达 AI。其他人则这样做。

对此有什么想法吗?

最佳答案

您可以尝试下面的代码,它对我有用:

在 Program.cs 中:

        public static async Task Main(string[] args)
        {
            Logger.Log("test 1");
            Logger.Log("test 2");
            Logger.Log("test 3");

            await Logger.DoSomethingAsync();

        }

在 Logger.cs 中:

    public static class Logger
    {
        private static TelemetryClient _logger;

        public static void Log(string message)
        {
            _GetLogger().TrackTrace(message);
            _Flush();
        }

        public static TelemetryClient _GetLogger()
        {
            if (_logger is null)
            {
                TelemetryConfiguration.Active.InstrumentationKey = "your key";
                _logger = new TelemetryClient();

            }

            return _logger;

        }

        public static void _Flush()
        {
            if (_logger is null)
            {
                TelemetryConfiguration.Active.InstrumentationKey = "your key";
                _logger = new TelemetryClient();

            }

            _logger.Flush();
        }

        public static async Task DoSomethingAsync()
        {
            await Task.Delay(1000);
        }

    }

执行后,所有消息都会显示在azure门户中: enter image description here

关于c# - Application Insights - 未收集第一个跟踪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52386749/

相关文章:

apache - PHP error_log 方法不会将错误写入我的错误日志文件

c# - HttpClient 中的电子邮件附件

c# - nameof 与泛型

c# - 如果 Json 数组包含特定值,如何检查它?

ios - 如何在iOS中从Azure notificationhub获取registrationId

c# - System.webServer 具有无效的子元素 'monitoring'

c# - 从数组中删除空白值并建议一种更好的方法来读取由 '|' 分隔的文本文件数据

asp.net-mvc - 从网站到外部 Web api 的简单 POST 失败

python - 每个应用程序实例的单独记录器名称

ruby-on-rails - 在 Rails 应用程序中为每个 Passenger 进程创建单独的日志