ILogger实例未登录异步方法,但Console.WriteLine登录



我有一个TCPTransport:类

private ILogger _logger;
public TcpTransport(ILogger logger) {
_logger = logger;
_logger.LogDebug($"Init");
OnTick += DoTick;
}
public async void MainLoop() {
Console.WriteLine("Mainloop1");
_logger.LogDebug($"Mainloop2");
....
}

当运行这个类并调用MainLoop方法时,我会得到ILogger输出";Init";,控制台输出";Mainloop1";,但是Mainloop2根本不输出。

我试着把它放在Task中,让线程休眠。我找不到任何关于为什么会发生这种情况的信息,我认为这与该方法是异步的有关。

Console.Writeline和_logger.LogDebug可能会写入不同的日志级别。尝试使用LogInformation更改LogDebug。

如果您没有自己编辑日志级别,可以查看appsettings.json文件以获取配置的日志设置。

最新更新