0

我能够将 Serilog 放入控制台,但在发布到 Azure Functions 后,使用Serilog.log.information()etc 的日志消息不会出现。

我尝试使用 file.sink 写入文件

.WriteTo.File(
         @"D:\home\LogFiles\Application\myapp.txt",
        fileSizeLimitBytes: 1_000_000,
        rollOnFileSizeLimit: true,
        shared: true,
        flushToDiskInterval: TimeSpan.FromSeconds(1))

下面是我在 startup.cs 中的配置

            Log.Logger = new LoggerConfiguration()
                .MinimumLevel.Override("Microsoft", LogEventLevel.Warning)
                .Enrich.FromLogContext()
                .WriteTo.Console()
                .CreateLogger();

            builder.Services.AddSingleton<ILoggerProvider>(sp => new SerilogLoggerProvider(Log.Logger, true));

            builder.Services.AddLogging(lb => lb.AddSerilog(Log.Logger, true));
4

1 回答 1

0

WriteTo.Console()只会将写入日志事件打印到 Windows 控制台。但是如果我们将它发布到 azure,我们将看不到控制台日志。

如果你想使用Serilog进入 azure。我们需要使用 Serilog.Sinks.RollingFile 将包用于 serilog 日志到 azure,或者您可以使用Serilog.Sinks.ApplicationInsights使用 kudu 来查看日志文件。

var logger = new LoggerConfiguration()
    .WriteTo.Console()
    .WriteTo.File("log.txt", rollingInterval: RollingInterval.Day)
    .CreateLogger();
    builder.Services.AddLogging(lb => lb.AddSerilog(logger));

请参阅此处了解更多信息

于 2021-09-13T11:49:23.597 回答