gpt4 book ai didi

c# - Azure 中的 Serilog 与 API 应用程序

转载 作者:太空狗 更新时间:2023-10-29 20:06:56 26 4
gpt4 key购买 nike

我已将Serilog集成到使用Asp.Net Core 2.0开发的WebApi项目中这是Program.cs中的配置代码:

Log.Logger = new LoggerConfiguration()
.Enrich.FromLogContext()
.WriteTo.Console()
.CreateLogger();

我成功地在调试过程中完美地看到了日志。
现在,我在 Azure 中将该服务部署为 API 应用程序。
应该应用什么配置才能通过Azure Portal中的日志流扩展查看生产环境中的日志?

最佳答案

据我所知,Serilog.Sinks.Console 会将日志事件写入 Windows 控制台。但如果您将应用程序发布到azure,我们将无法直接看到控制台。

我建议你可以考虑使用Serilog.Sinks.RollingFileSerilog.Sinks.ApplicationInsights而不是控制台来写入日志事件。

关于如何使用Serilog.Sinks.RollingFile或Serilog.Sinks.ApplicationInsights,可以引用下面的代码。

首先,安装Serilog.AspNetCoreSerilog.Sinks.RollingFile来自 Nuget 的包。

然后您可以使用以下代码来记录信息。

    //if you want to use ApplicationInsights just change the write to's method as Serilog.Sinks.ApplicationInsights links shows
Log.Logger = new LoggerConfiguration()
.MinimumLevel.Debug()
.MinimumLevel.Override("Microsoft", LogEventLevel.Information)
.Enrich.FromLogContext()
.WriteTo.RollingFile("log-{Date}.txt")
.CreateLogger();

Log.Information("This will be written to the rolling file set");

它将自动创建 txt 文件来记录事件。

结果是这样的,你可以在应用程序wwwrot路径中找到它:

enter image description here

<小时/>

更新:

如果您想使用 Serilog 将日志记录到 azure 日志流,您需要首先在 Web 应用程序中启用“诊断日志”。然后,您可以使用 Serilog 将文件记录到 azure 默认的“诊断日志”文件夹。例如:D:\home\LogFiles\http\RawLogs。然后日志将显示在日志流中。

使用以下代码进行测试:

        Log.Logger = new LoggerConfiguration()
.MinimumLevel.Debug()
.MinimumLevel.Override("Microsoft", LogEventLevel.Information)
.Enrich.FromLogContext()
.WriteTo.File(@"D:\home\LogFiles\http\RawLogs\log.txt")
.CreateLogger();

Log.Information("This will be written to the rolling file set");

并启用诊断日志。

enter image description here

然后打开日志流并找到应用程序日志。

可以发现日志已经登录到log-steam中。

enter image description here

文件夹:

enter image description here

关于c# - Azure 中的 Serilog 与 API 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46629489/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com