- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在我的一个项目(.net core 3.1)中,我需要一种将 System.Diagnostics.Trace.WriteLine 重定向到 Serilog 文件的方法。我找到了 SerilogTraceListener 包,它似乎是正确的候选者。
不幸的是,直到现在,我还无法找到使其工作的方法。
为了重现它,
1)创建一个.net core控制台项目
2)添加以下nuget包:Serilog、SerilogTraceListener、Serilog.Sink.Console、Serilog.Sink.File
3) 用下面的代码覆盖程序类代码
class Program
{
static void Main(string[] args)
{
// Works fine
Log.Logger = new LoggerConfiguration()
.WriteTo.Console()
.WriteTo.File("log.txt")
.CreateLogger();
Log.Logger.Information("A string written using Logger.Information");
// Trace is written in the console but not in the file
Trace.Listeners.Add(new ConsoleTraceListener());
Trace.Listeners.Add(new global::SerilogTraceListener.SerilogTraceListener());
System.Diagnostics.Trace.WriteLine("A string written using Trace.WriteLine");
}
}
最佳答案
TL; 博士;您需要将 MinimumLevel
设置为 Debug
或 Verbose
以查看 Trace.WriteLine
消息。
SerilogTraceListener 将 System.Diagnostic.TraceEventType
映射到 Serilog.LogEventLevel
,当你调用 Trace.WriteLine
时, it maps these events to the Debug
log event level 。
这意味着 Serilog 的记录器正在接收 LogEventLevel.Debug
类型的消息。
Serilog 中默认配置的最低级别是 Information
,这意味着 Debug
消息正在被抑制。
您必须将 MinimumEventLevel
配置为 Debug
(或 Verbose
)才能查看 Trace.WriteLine
消息:
Log.Logger = new LoggerConfiguration()
.MinimumLevel.Debug() // <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
.WriteTo.Console()
.WriteTo.File("log.txt")
.CreateLogger();
关于trace - 无法使用 SerilogTraceListener 将 Trace.WriteLine 重定向到 Serilog,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62266901/
在我的一个项目(.net core 3.1)中,我需要一种将 System.Diagnostics.Trace.WriteLine 重定向到 Serilog 文件的方法。我找到了 SerilogTra
我是一名优秀的程序员,十分优秀!