Serilog:如何仅在文件开头写入文件头?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Serilog:如何仅在文件开头写入文件头?相关的知识,希望对你有一定的参考价值。

我需要编写一些与通过系统调度程序启动的应用程序状态有关的信息。然后处理行应遵循:

2019-10-09 23:39:22.936 +02:00 [DBG] ======================================================================
2019-10-09 23:39:22.999 +02:00 [DBG] MyAppDELFOR (0.10.1  2019-10-09)
2019-10-09 23:39:22.999 +02:00 [DBG] ----------------------------------------------------------------------
2019-10-09 23:39:23.015 +02:00 [DBG] stageDirectory: 'c:EDIAbcCompany_received_stage'
2019-10-09 23:39:23.015 +02:00 [DBG] oftpIncomingDirectory: 'c:EDIAbcCompany_incoming'
2019-10-09 23:39:23.015 +02:00 [DBG] archiveDirectory: 'c:EDIAbcCompany_received_archive'
2019-10-09 23:39:23.015 +02:00 [DBG] ----------------------------------------------------------------------
2019-10-09 23:39:23.061 +02:00 [WRN] The stage file 'c:EDIAbcCompany_received_stageDELFOR_010091_20191001' already exists and is to be deleted.
2019-10-09 23:39:24.905 +02:00 [INF] Processing 'c:EDIAbcCompany_received_stageDELFOR_010086_20191001'
2019-10-09 23:39:30.281 +02:00 [INF] Processing 'c:EDIAbcCompany_received_stageDELFOR_010087_20191001'
2019-10-09 23:39:34.109 +02:00 [INF] Processing 'c:EDIAbcCompany_received_stageDELFOR_010088_20191001'

目前,我总是写标题。但是,应用程序启动的频率很高,并且“无数据可处理”的情况很常见。因此,我想避免写标题,而只想写“没有要处理的数据”或类似的行。

仅在创建日志文件时,(Serilog中)有什么方法可以写标题吗?

答案

最近启用了这种功能的一组钩子已添加到File接收器。主要贡献者有a nice demo repo

以上是关于Serilog:如何仅在文件开头写入文件头?的主要内容,如果未能解决你的问题,请参考以下文章

Serilog 不会将日志写入文件

ASP.Net Classic Serilog 不写入文件

在 ASP.NET Core 2.2 中使用 InProcess 托管模型时,Serilog 不会将日志写入文件

Serilog 滚动文件

每个功能的 serilog 多个实例

Serilog Net Core 3.1 不创建任何日志文件