【问题标题】:How to get Serilog into Azure Log Stream in Azure Function .NET 3.1如何在 Azure Function .NET 3.1 中将 Serilog 导入 Azure 日志流
【发布时间】:2021-09-09 03:31:27
【问题描述】:

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

我尝试使用 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));

【问题讨论】:

    标签: azure-functions serilog serilog-sinks-file


    【解决方案1】:

    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));
    

    参考here for more info

    【讨论】:

    • 谢谢!我已经探索了登录文件和 Azure Application Insight。我可以检查如何为 Azure Function App 启用诊断日志吗?
    • 我已更新答案并检查here azure 函数不支持诊断日志。 应用洞察 是监控 azure 功能的更好选择。如果您使用的是 serilog,则可以使用 kudu 控制台查看日志。
    • @DelliganeshS-MT Serilog.Sings.RollingFile 也已弃用。推荐Serilog.Sinks.File
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-11-03
    • 2022-08-18
    • 2021-11-10
    • 2020-12-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多