我有一个问题我有两个类,我想将这两个类写入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);
}
如果我要写这个,我会创建两个日志对象和日志信息,将写入不同的文件。 所以我的问题是如何只创建一个我可以在两个类中使用的日志对象,并且日志信息只写入一个文件。
答案 0 :(得分:2)
无需创建新的日志文件。此日志文件已存在,您可以将其附加。
答案 1 :(得分:0)
.net应用程序中有同样的问题。我的解决方案是使用私有静态Logger创建一个类。看起来像这样:
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);
}
}
对于此类,每次您创建该类的实例时,构造函数都会验证以前是否已创建Logger。这样,您将始终对不同的类使用相同的Logger,并且始终将写入同一文件。