首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Serilog不伐木

Serilog不伐木
EN

Stack Overflow用户
提问于 2022-08-19 07:10:50
回答 1查看 80关注 0票数 -1

我有以下配置

代码语言:javascript
复制
public static IServiceCollection ConfigureSiteLogging(this IServiceCollection services)
{
    if (!Directory.Exists(@"D:\inetpub\logs"))
    {
        Directory.CreateDirectory(@"D:\inetpub\logs");
    }

    services.AddLogging(builder =>
    {

        ILoggerFactory loggerFactory = LoggerFactory.Create(builder =>
        {
            var loggerConfiguration = new LoggerConfiguration()
                                        .Enrich.FromLogContext()
                                        .WriteTo.File(@"D:\inetpub\logs\shop.txt"
                                                    , rollingInterval: RollingInterval.Day
                                                    , encoding: System.Text.Encoding.UTF8
                                                    , retainedFileCountLimit: 2
                                                    , restrictedToMinimumLevel: Serilog.Events.LogEventLevel.Information
                                                    );

            builder.AddSerilog(loggerConfiguration.CreateLogger());

        });
    });
    return services;
}

在站点程序文件中:

代码语言:javascript
复制
Log.Information("Web Service Running");
await app.RunAsync();
Log.Information("Web Service Stopped");
Log.CloseAndFlush();

问题是,我没有看到任何登录磁盘,为什么它不冲?这些是我的NuGet包

代码语言:javascript
复制
<PackageReference Include="Serilog" Version="2.11.0" />
<PackageReference Include="Serilog.AspNetCore" Version="6.0.1" />
<PackageReference Include="Serilog.Extensions.Logging" Version="3.1.0" />
<PackageReference Include="Serilog.Settings.AppSettings" Version="2.2.2" />
<PackageReference Include="Serilog.Settings.Configuration" Version="3.3.0" />
<PackageReference Include="Serilog.Sinks.File" Version="5.0.0" />
EN

回答 1

Stack Overflow用户

发布于 2022-08-23 05:06:28

我发现了我遗漏的东西,不确定它是否是一个特性,但是您必须将记录器分配给Serilog.Log.Logger,--对builder.AddSerilog()的调用不会执行这个步骤。

这是我的工作解决方案

代码语言:javascript
复制
public static IServiceCollection ConfigureSiteLogging(this IServiceCollection services)
{
    if (!Directory.Exists(@"D:\InetPub\logs"))
    {
        Directory.CreateDirectory(@"D:\InetPub\logs");
    }
    Log.Logger = new LoggerConfiguration()
                    .Enrich.FromLogContext()
                    .MinimumLevel.Information()
                    .WriteTo.File(@"D:\InetPub\logs\shop.txt"
                                , rollingInterval: RollingInterval.Day
                                , encoding: System.Text.Encoding.UTF8
                                , retainedFileCountLimit: 2
                                , flushToDiskInterval: TimeSpan.FromSeconds(5)
                                , shared: true
                                ).CreateLogger();

    services.AddLogging(builder =>
    {
        ILoggerFactory loggerFactory = LoggerFactory.Create(builder =>
        {
            builder.AddSerilog(Log.Logger);
        });
    });
    return services;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73413069

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档