小编SbC*_*nts的帖子

无法使用 SerilogTraceListener 将 Trace.WriteLine 重定向到 Serilog

在我的一个项目(.net core 3.1)中,我需要一种将 System.Diagnostics.Trace.WriteLine 重定向到 Serilog 文件的方法。我发现 SerilogTraceListener 包似乎是合适的候选者。

不幸的是,到目前为止,我还没有找到让它发挥作用的方法。

要重现它,
1)创建一个.net core控制台项目
2)添加以下nuget包:Serilog,SerilogTraceListener,Serilog.Sink.Console,Serilog.Sink.File
3)通过以下内容覆盖Program类代码

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");
    }
}
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

trace serilog

6
推荐指数
1
解决办法
1772
查看次数

标签 统计

serilog ×1

trace ×1