[英]SeriLog with AppInsights not writing to AppInsights
我正在使用 Serilog 和 .NET CORE 2.0 項目的 appinsights 編寫日志。
我已將 SeriLog 配置如下,
var loggerConfiguration = new LoggerConfiguration()
.ReadFrom.Configuration(configuration)
.Enrich.FromLogContext()
.Enrich.WithDemystifiedStackTraces();
並按如下方式寫入 appInsights,
loggerConfiguration = loggerConfiguration.WriteTo.ApplicationInsightsTraces(appInsightsIntrumentationKey, serilogLevel)
.WriteTo.RollingFile(Path.Combine(contentRoot, "Logs/log-{Date}.log"), retainedFileCountLimit: 14);
我看到在日志文件夾內生成的日志,但我在 appInsights 中沒有看到任何內容。
我在做什么錯?
確保在 Serilog ApplicationInsights 接收器之前安裝 SDK。 如果您沒有 SDK,它似乎可以工作,但您最終將在 ApplicationInsights 中沒有任何消息。
https://www.nuget.org/packages/Microsoft.ApplicationInsights.AspNetCore/
我已經嘗試按照文檔進行操作
"ApplicationInsights": {
"InstrumentationKey": "7334f234-42c9-4a1f-b35d-4969d48020d4",
"EnableAdaptiveSampling": false,
"EnablePerformanceCounterCollectionModule": false
},
"Serilog": {
"WriteTo": [
{ "Name": "Console" },
{
"Name": "ApplicationInsights",
"Args": {
"instrumentationKey": "7334f234-42c9-4a1f-b35d-4969d48020d4",
"telemetryConverter": "Serilog.Sinks.ApplicationInsights.Sinks.ApplicationInsights.TelemetryConverters.TraceTelemetryConverter, Serilog.Sinks.ApplicationInsights"
}
}
]
}
它適用於 Azure 應用服務和開發計算機
程序.cs:
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.UseSerilog() // added to embed serilog
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup<Startup>();
});
啟動文件
public Startup(IConfiguration configuration)
{
Configuration = configuration;
Log.Logger = new LoggerConfiguration().ReadFrom.Configuration(Configuration).CreateLogger();
}
樣品控制器:
[Route("[controller]")]
[ApiController]
public class BadValuesController : ControllerBase
{
private readonly ILogger<BadValuesController> _logger;
public BadValuesController(ILogger<BadValuesController> logger)
{
_logger = logger;
_logger.LogDebug("ctor");
}
[HttpGet]
public IEnumerable<WeatherForecast> GetData()
{
_logger.LogWarning("going to raise 6 from local app");
throw new NotImplementedException();
}
}
由於沒有services.AddApplicationInsightsTelemetry();
不需要重建應用程序services.AddApplicationInsightsTelemetry();
被執行。 您可以將dll
文件復制到您的應用程序並調整配置以打開 AppInsights 登錄。
但是,如果沒有源代碼修改,則您沒有TelemetryClient
實例。 所以你必須等待一段時間才能選擇應用洞察日志。
我已經安裝了 NuGet 包
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.