C# 两个 类 一个 serilog 文件

C# two classes one serilog file

我有一个问题我有两个 类,我想将两个 类 写入 Serilog 文件。

class Program
    {
        static void Main(string[] args)
        {
            Log.Logger = new LoggerConfiguration()
                    .WriteTo.RollingFile(logs\log.txt)
                    .CreateLogger();
            Log.Information("TEST");
        }
    }

public class data: IData
    {
            Log.Logger = new LoggerConfiguration()
                .WriteTo.RollingFile(logs\log.txt)
                .CreateLogger();
            Log.Information("_________________________________________________");
            Log.Information("I'm right now in the Class", DateTime.Now);
    }

如果我要写这个,我会创建两个日志对象和日志信息,将写入不同的文件。 所以我的问题是如何只创建一个我可以在两者中使用的日志对象 类 并且日志信息只写入一个文件。

不需要创建新的日志文件。此日志文件已存在,您可以附加它。

我的 .net 应用程序也遇到了同样的问题。我的解决方案是创建一个带有私有静态记录器的 class。它看起来像这样:

public class ErrorLogRepository
    {
        private static Logger _logger;

        public ErrorLogRepository()
        {
            if(_logger == null)
            {
                _logger = new LoggerConfiguration()
                    .WriteTo.RollingFile(logs\log.txt)
                    .CreateLogger();
            } 
        }

        public void Log()
        {
            Log.Information("I'm right now in the Class", DateTime.Now);
        }
    }

有了这个class,每次创建它的实例时,构造函数都会验证之前是否创建了 Logger。这样,您将始终对不同的 classe 使用相同的 Logger,并且您将始终写入同一个文件。