我正在使用 .NET 开发一个控制台应用程序。 该应用程序在控制台中写入了很多内容,并且每次使用 Serilog 运行该应用程序时,我都希望将一些用户交互登录到文件中。
我不想将整个控制台输出重定向到日志文件并丢失控制台输出,我两者都想要。
我没有找到如何告诉 Serilog 将控制台输出记录到文件中(并保留控制台输出)...
没有理由重定向控制台输出。 Serilog 允许写入多个接收器,包括files,例如:
var log = new LoggerConfiguration()
.WriteTo.Console()
.WriteTo.File("log.txt", rollingInterval: RollingInterval.Day)
.CreateLogger();
可以过滤写入每个接收器的消息。这样,人们可以将所有日志写入
log.txt
文件,并将警告和错误写入 errors.txt
,同时仍将所有内容发送到控制台:
var log = new LoggerConfiguration()
.WriteTo.Console()
.WriteTo.File("log.txt", rollingInterval: RollingInterval.Day)
.WriteTo.File("errors.txt",LogEventLevel.Warning, rollingInterval: RollingInterval.Day)
.CreateLogger();