C# Serilog已停止日志记录

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

我已按照说明设置Serilog文件日志记录:

在my Startup.cs中,我有以下内容:

...
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(包含在其中)比较省事