Serilog 如何将 SignalR 的跟踪日志写入日志文件?

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

我有以下代码来启用记录 SignalR 调用的跟踪日志。然而,代码不起作用?

using Microsoft.Extensions.Logging;
using SeriLog;

var seriLoglogger = new LoggerConfiguration() // SeriLog.Core.Logger?
    .WriteTo.Console()
    .WriteTo.File(...)
    .CreateLogger();
var loggerFactory = LoggerFactory.Create(builder => Builder.AddSerilog(seriLogLogger));
var logger = loggerFactory.CreateLogger("...");

logger.LogInformation("This works"); // This line works

var hubConnection = new HubConnectionBuilder()
    .WithUrl(...)
    .ConfigureLogging(logging =>
    {
        logging.AddSerilog(seriLoglogger);
        logging.SetMinimumLevel(LogLevel.Trace);

    }

如果我在

.ConfigureLogging(logging => { .... }
中添加以下行,我可以在屏幕上看到跟踪日志。

logging.AddSystemdConsole(o => { ... });

或 记录.AddConsole();

然而,它没有

logging.AddFile()

c# signalr serilog
1个回答
0
投票

即使您已将

HubConnectionBuilder
的日志记录设置为在跟踪级别发出,但您使用的 Serilog 记录器不是,正如您通过添加此行所看到的:

logger.LogTrace("This doesn't work");

Serilog的“Trace”版本是“Verbose”,可以在这里设置:

var seriLoglogger = new LoggerConfiguration()
    .MinimumLevel.Verbose() // Emit "Trace"-level logs.
    .WriteTo.Console()
    ...
© www.soinside.com 2019 - 2024. All rights reserved.