【问题标题】:Same log file in multiple projects using serilog使用 serilog 的多个项目中的相同日志文件
【发布时间】:2019-03-19 17:19:42
【问题描述】:

我有一个 Logger.cs 类:

public Logger(string logtype=null)
        {
            _logtype = logtype;
            LogEventLevel level = LogEventLevel.Warning;
            if (File.Exists(configPath))
            {
                XDocument xdoc = XDocument.Load(configPath);
                string val = xdoc.Descendants("logEnabled").First().Value;
                // if(clientConfig.LogEnabled == true)
                if (val == "true")
                {
                    level = LogEventLevel.Debug;

                }
                else if (val == "false")
                {
                    level = LogEventLevel.Warning;
                }
            }
            else
            {
                level = LogEventLevel.Warning;
            }
           _logger = new LoggerConfiguration()
                        .MinimumLevel.Debug()
                         .WriteTo.File(_filepath, level)
                         .CreateLogger();

        }

此记录器类用于解决方案中的多个项目。如下图:

    Class A {
     Logger _logger = new Logger("A");
    }

Class A1 {
     Logger _logger = new Logger("A");
    }

Class B {
     Logger _logger = new Logger("B");
    }

Class B1 {
     Logger _logger = new Logger("A");
    }

使用我上面的代码。现在我可以看到只有第一个日志记录被写入日志文件。 A 类和 A1 类使用相同的日志文件“A”,当我的程序执行时,我只能看到日志中存在 A 类日志记录,但看不到 A1 类日志记录消息。 B 类和 B1 类相同,只有 B 类消息可见。

如何在一个解决方案中跨多个项目使用相同的日志文件?

【问题讨论】:

    标签: c# serilog


    【解决方案1】:

    您需要启用多进程共享日志文件,将shared设置为true

    _logger = new LoggerConfiguration()
                    .MinimumLevel.Debug()
                    .WriteTo.File(_filepath, level, shared: true)
                    .CreateLogger();
    

    更多请查看Shared log files

    【讨论】:

    • 如何通过appsetting.json设置这个属性?
    • @user1066231 试试"WriteTo": [{ "Name": "File", "Args": { "path": "log.txt", "shared": "true" } }]
    猜你喜欢
    • 2015-04-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多