我有一个控制台应用程序将一些日志发送到 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);
}
}
关于c# - Application Insights - 未收集第一个跟踪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52386749/