【发布时间】:2021-05-17 11:35:10
【问题描述】:
我正在为应用程序编写 NLog 文件。所需的要求之一是用户应该能够选择文件大小和日志级别。可以从下拉菜单中选择日志级别。我在想我可以有一个文件大小和日志级别的占位符。我该怎么做呢?目前,我已经这样做了:
<target name="logfile" xsi:type="File" FileName=".\logs\${shortdate}.log"
archiveFileName=".\logs\archive\${shortdate}.log"
maxArchiveFiles="60" archiveEvery="Day" archiveAboveSize="###MaxSize###"
layout="${longdate}|${level:uppercase=true}|${callsite}|${message}|${exception:format=toString}"/>
<rules>
<logger name="*" minlevel="Trace" writeTo="logfile" />
对此我有两个问题:
- 我怎样才能使日志级别可以在一个选项中选择?
- 是否需要为每个日志级别设置不同的
target?
【问题讨论】:
-
这是应用程序内还是将在应用程序进程之外运行并“简单地”更改日志配置文件的“日志配置器”?用户选择是“临时的”(例如,直到应用重新启动)还是持久的?
-
@Fildor 下拉菜单和能够选择文件大小的功能将被添加到应用程序中。在这里,我将有占位符,然后将替换为选择的任何大小或日志级别。所以这整个将是应用内的。用户的选择是永久的。
-
好的,如果它在应用程序内,我将从以编程方式更改 NLog 配置开始。 (受到stackoverflow.com/questions/10302561/… 的启发)和github.com/NLog/NLog/wiki/…
-
^^ 如后者所示,我可能会将用户选择保存在应用设置中,并在每次重新加载配置时重新应用。