ASP.NET Core扩展库之日志成果的利用详解(2)

假如你是通过设置源来设置的日志级别,那么当设置源更新时(一般通过设置工具的Reload要领),日志级别将自动修改。
    假如需要回收代码方法,你可以通过全局的WebApiConfig实例举办设置:

// 动态修他日志级别 var apiConfig = host.Services.GetRequiredService<WebApiConfig>(); apiConfig.AppLogLevel = Serilog.Events.LogEventLevel.Error;

六、当地文件日志设置

针对当地日志的设置,包括日志文件的路径模板、日志文件的按时清理、日志的自动压缩等。
    当地文件日志路径通过LogPathTemplate配置来设置,默认为LogPathTemplates.DayFolderAndLoggerNameFile,暗示以天天作为子目次,以日志名称作为日志文件名。通过LogPathTemplates也内置了其他的路径模板:

路径模板名

 

说明

 

DayFolderAndLoggerNameFile

 

以天天日期为目次,日志名称为文件名

 

DayFile

 

以天天日期为日志名称

 

LoggerNameAndDayFile

 

以[日志名称_天天日志]为日志文件名称

 

LevelFile

 

以日志级别缩写为日志文件名称

 

DayFolderAndLevelFile

 

以天天日期为目次,日志级别缩写为日志名称

 

由于LogPathTemplate为字符串设置,你也可以设置其他的路径模板。
    关于日志的按时清理,可以通过MaxLogDays设置来指定日志保存的天数,假如配置为0,暗示不清理,这是默认设置。
    通过MaxLogFileSize以及RetainedFileCount设置可以配置日志文件的自动压缩计策,MaxLogFileSize默认配置为100mb,高出此巨细后,日志将写到新的文件,RetainedFileCount为可旋转的日志文件数量,默认为31个,高出此数量后的日志将被自动压缩。

七、容器化支持

在容器化情况下,日志一般会回收EFK的架构,在k8s中,我们推荐F回收fluent-bit而不是filebeat。这种框架下,我们只需将日志输出到节制台,容器将节制台输出定位到Docker宿主机,然后通过fluent-bit扫描日志文件,举办理会处理惩罚,发送给ES。
    在这种模式下,你需要将ConsoleJsonLog配置为true来开启JSON名目标节制台日志方针。同时,由于节制台单行字数有限制,大概导致日志被截取,故大概需要通过MaxLogLength来配置单条日志的长度限制,此配置默认为8kb,适合大大都场景。超出长度的日志并不会被忽略,而是会拆分成多条日志,以此来担保日志的完整性。

// 要支持容器化EFK日志模式,一般只需要配置ConsoleJsonLog为true即可 public static IHostBuilder CreateHostBuilder(string[] args) => Host.CreateDefaultBuilder(args) .ConfigureWebHostDefaults(webBuilder => { webBuilder.UseExtensions(args, config=> { config.ConsoleJsonLog = true; }); webBuilder.UseStartup<Startup>(); });

八、测试支持

有时我们大概需要在单位测试中查抄日志的输出,这时,我们可以利用扩展库在ILoggingBuilder上的扩展要领来添加测试日志方针。随后,你可以通过IServiceProvider上的GetTestLogContent要领获取已记录的日志内容列表。

IServiceCollection services = new ServiceCollection() .AddExtensions() .AddLogging(logBuilder => { // 添加测试日志记录器 logBuilder.AddTestLogger(); }); IServiceProvider provider = services.BuildServiceProvider(); // 获取日志内容 var logContent = provider.GetTestLogContent();

九、禁用Serilog

假如你以为上述所有成果都不太适合你的场景,可是你又需要利用扩展库的其他成果,那怎么办呢? 很是简朴,你只需要将EnableSerilog配置为false,即可完全禁用上述日志成果。 

有关日志的具体设置,可参考[文档]
Xfrogcn.AspNetCore.Extensions地点:[GitHub] [Gitee]

以上就是ASP.NET Core扩展库之日志成果的利用详解的具体内容,更多关于ASP.NET Core扩展库之日志成果的资料请存眷剧本之家其它相关文章!

您大概感乐趣的文章:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wsjfyp.html