C# Serilog已停止日志记录
我已按照说明设置Serilog文件日志记录: 在my Startup.cs中,我有以下内容:C# Serilog已停止日志记录,c#,serilog,.net-core-3.0,C#,Serilog,.net Core 3.0,我已按照说明设置Serilog文件日志记录: 在my Startup.cs中,我有以下内容: ... using Microsoft.Extensions.Logging; public void Configure(IApplicationBuilder app, IWebHostEnvironment env, ILoggerFactory loggerFactory, S3DataSettingsProvider settings) { loggerFactory.AddFile
...
using Microsoft.Extensions.Logging;
public void Configure(IApplicationBuilder app, IWebHostEnvironment env, ILoggerFactory loggerFactory, S3DataSettingsProvider settings)
{
loggerFactory.AddFile(settings.LogFilename);
...
DoStuffThatRequiresLogging(); // runs ok but no log files created
}
using Microsoft.Extensions.Logging;
public class MyClass
{
private ILogger<MyClass> _log;
public ImportRunner(ILogger<MyClass> log)
{
_log = log;
...
}
private void Log(string message)
{
_log.LogError($"[{nameof(MyClass)}] {message}");
}
我已经检查了settings.LogFilename
是否通过添加断点解析为正确的文件名
代码中的其他地方是一个包含以下内容的类:
...
using Microsoft.Extensions.Logging;
public void Configure(IApplicationBuilder app, IWebHostEnvironment env, ILoggerFactory loggerFactory, S3DataSettingsProvider settings)
{
loggerFactory.AddFile(settings.LogFilename);
...
DoStuffThatRequiresLogging(); // runs ok but no log files created
}
using Microsoft.Extensions.Logging;
public class MyClass
{
private ILogger<MyClass> _log;
public ImportRunner(ILogger<MyClass> log)
{
_log = log;
...
}
private void Log(string message)
{
_log.LogError($"[{nameof(MyClass)}] {message}");
}
使用Microsoft.Extensions.Logging;
公共类MyClass
{
私人ILogger_日志;
公共导入器(ILogger日志)
{
_log=log;
...
}
私有无效日志(字符串消息)
{
_LogError($“[{nameof(MyClass)}]{message}”);
}
但是日志记录不起作用
如果我在\u log.LogError
行上放置一个断点,并浏览\u log
对象,我可以看到有4个记录器,其中没有一个是我认为在启动时添加的文件记录器:(
这在过去一直运作良好,不知道为什么现在停止了
是否有明显缺失的内容?如果您使用断点
配置
,您是否可以看到实际发生的情况?如果是,您能否确认您得到的iLogger工厂
实例是否正确?连接依赖项时可能会出现很多错误(包括您自己没有连接的依赖项)。好的,我可以看到Serilog
已成功添加到\u providerRegistrations
中,但是有0个\u记录器
。我应该看到什么?我想问题是,我记录东西的代码是从Configure
中调用的,因此可能DI容器设置尚未完成。我不需要这样做o找其他地方调用。我现在没有选择。尝试过四处移动代码、使用DI等,但没有帮助。通常,由启用的useserlog()
API和Serilog.Sinks.File(包含在其中)比较省事