C# Serilog 将控制台输出记录到每个应用程序执行的文件中(不会丢失控制台输出)[控制台应用程序]

问题描述 投票:0回答:1

我正在使用 .NET 开发一个控制台应用程序。 该应用程序在控制台中写入了很多内容,并且每次使用 Serilog 运行该应用程序时,我都希望将一些用户交互登录到文件中。

我不想将整个控制台输出重定向到日志文件并丢失控制台输出,我两者都想要。

我没有找到如何告诉 Serilog 将控制台输出记录到文件中(并保留控制台输出)...

c# .net console-application serilog
1个回答
0
投票

没有理由重定向控制台输出。 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();
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.