Serilog配置Log Level后是否自动抓取日志
Does Serilog captures log automatically when configured with Log Level
我是第一次使用 Serilog 并试图弄清楚它是如何工作的。我正在查看配置了 Serilog 的示例 ASP.Net 核心应用程序。正在从 Appsettings.json:
读取 serilog 配置
"Serilog": {
"ApplicationName": "app-name",
"Using": [ "Serilog.Sinks.File" ],
"MinimumLevel": "Verbose",
"WriteTo": [
{
"Name": "RollingFile",
"Args": { "pathFormat": "log-{Date}.log" }
}
]
}
Log对象在Startup中定义,“AddSerilog”在“ConfigureServices”方法中定义。但除此之外,不存在其他日志信息。但是,当我 运行 应用程序自动日志文件正在解决方案目录中生成时。
问题是 Serilog 会自动创建那些日志文件吗?
在 ConfigureServices
中对 AddSerilog
的调用使用 Microsoft 的 ILoggingBuilder
. This provider (SerilogLoggerProvider
), implements ILoggerProvider
及其 CreateLogger
方法注册了一个日志提供程序,如下所示:
public ILogger CreateLogger(string name)
{
return new SerilogLogger(this, _logger, name);
}
从这段代码可以看出Serilog的SerilogLogger
实现了微软的ILogger
接口
当ASP.NET核心框架需要创建记录器对象时,它使用ILoggerProvider
的实现通过调用CreateLogger
创建ILogger
的实例。在注册的 Serilog 提供程序就位后,ASP.NET Core 请求 ILogger
的实例并接收 SerilogLogger
的实例,这在 ASP.NET Core 之间提供了桥梁和 Serilog。
RollingFile 接收器本身会在发出日志事件时自动创建配置的日志文件,并相应地使用其自己的逻辑来创建带时间戳的文件等。
我是第一次使用 Serilog 并试图弄清楚它是如何工作的。我正在查看配置了 Serilog 的示例 ASP.Net 核心应用程序。正在从 Appsettings.json:
读取 serilog 配置"Serilog": {
"ApplicationName": "app-name",
"Using": [ "Serilog.Sinks.File" ],
"MinimumLevel": "Verbose",
"WriteTo": [
{
"Name": "RollingFile",
"Args": { "pathFormat": "log-{Date}.log" }
}
]
}
Log对象在Startup中定义,“AddSerilog”在“ConfigureServices”方法中定义。但除此之外,不存在其他日志信息。但是,当我 运行 应用程序自动日志文件正在解决方案目录中生成时。
问题是 Serilog 会自动创建那些日志文件吗?
在 ConfigureServices
中对 AddSerilog
的调用使用 Microsoft 的 ILoggingBuilder
. This provider (SerilogLoggerProvider
), implements ILoggerProvider
及其 CreateLogger
方法注册了一个日志提供程序,如下所示:
public ILogger CreateLogger(string name)
{
return new SerilogLogger(this, _logger, name);
}
从这段代码可以看出Serilog的SerilogLogger
实现了微软的ILogger
接口
当ASP.NET核心框架需要创建记录器对象时,它使用ILoggerProvider
的实现通过调用CreateLogger
创建ILogger
的实例。在注册的 Serilog 提供程序就位后,ASP.NET Core 请求 ILogger
的实例并接收 SerilogLogger
的实例,这在 ASP.NET Core 之间提供了桥梁和 Serilog。
RollingFile 接收器本身会在发出日志事件时自动创建配置的日志文件,并相应地使用其自己的逻辑来创建带时间戳的文件等。