NLog 避免重复行并设置增量时间

时间:2021-05-20 10:19:45

标签: c# logging nlog milliseconds

我正在使用 Nlog,但在下面找不到这些功能。 我当然可以自己制作它们,但由于 NLog 通常会满足所有需求,因此可能内置了所有这些功能。


每个条目之间的增量秒

我的布局为 "[${date:format=dd.MM.yyyy HH\:mm\:ss.fff}] (${level:uppercase=true}): ${message}" 所以我得到类似的东西:

[20.05.2021 11:53:33.667] (INFO): --- 20210520_1153 Starting ---
[20.05.2021 11:53:33.784] (INFO): *.cfg not found going for TRIAL LICENCE
[20.05.2021 11:53:33.784] (INFO): Reg Hive found. Verifying
[20.05.2021 11:53:33.784] (INFO): Key length = 3

是否可以自动添加增量时间?所以就像下面这样

[20.05.2021 11:53:33.667 - 0.000] (INFO): --- 20210520_1153 Starting ---
[20.05.2021 11:53:33.784 - 0.117] (INFO): *.cfg not found going for TRIAL LICENCE
[20.05.2021 11:53:33.784 - 0.000] (INFO): Reg Hive found. Verifying
[20.05.2021 11:53:33.784 - 0.000] (INFO): Key length = 3

避免重复行(随意)

[20.05.2021 11:53:33.667] (INFO): AAA
[20.05.2021 11:53:33.784] (INFO): AAA
[20.05.2021 11:53:33.784] (INFO): AAA
[20.05.2021 11:53:33.784] (INFO): AAA

变成这样

[20.05.2021 11:53:33.667] (INFO): AAA
...

并且能够将其扩展到不止一个级别

[20.05.2021 11:53:33.667] (INFO): AAA
[20.05.2021 11:53:33.784] (INFO): BBB
[20.05.2021 11:53:33.784] (INFO): AAA
[20.05.2021 11:53:33.784] (INFO): BBB

成为

[20.05.2021 11:53:33.667] (INFO): AAA
[20.05.2021 11:53:33.784] (INFO): BBB
...

这样会节省很多字符

提前致谢

帕特里克

2 个答案:

答案 0 :(得分:2)

这些功能(尤其是第二个)需要对现有日志文件的内容进行持续解析,这将对性能产生重大影响。
我怀疑 NLog 是否会包含重新解析功能,即使有,我也怀疑使用它是否是个好主意。

在这两种情况下,预处理日志消息的写入比追溯必须重新解析日志并确定当前日志消息是否应该写入要容易得多。

答案 1 :(得分:1)

您可以使用 kubectl cp device-database-79fc964c8-q7ncc:/tmp/plsql_data/prod.dump /Users/raja/prod.dump 查看自程序启动以来的时间。另请参阅:https://github.com/NLog/NLog/wiki/Processtime-Layout-Renderer(用于查看增量)。

您可以使用 ${processtime}-filter 来阻止重复的日志事件。但最好避免重复记录,如果可能的话(并确保正确配置了日志记录规则)。另见:https://github.com/NLog/NLog/wiki/WhenRepeated-Filter

相关问题