如何在企业库日志文件侦听器的文件名中指定模板或标记

How to specify template, or tokens in filename of Enterprise Library Logging file listener

从我读到的内容来看,企业库不允许在文件名中使用标记,这很奇怪,因为所有其他日志记录解决方案都允许。

这很混乱,我肯定遗漏了一些东西。因为我什至无法在平面或 lolling 文件侦听器中指定进程名称。

NLog

<target name="txtFile"
    xsi:type="File"
    fileName="${cached:cached=true:inner=${date:format=yyyy-MM-dd HH-mm-ss}}.txt"
    layout="${longdate} ${level} ${message}"/>

Log4Net

<file type="log4net.Util.PatternString" value="~/App_Data/%property{LogName}" />

我知道的唯一解决方案(不包括编程设置)现在是在进程级别使用环境变量

<add name="loggingErrorsLog"                
     fileName="%LOGS_DIR%\%PROCESSNAME%\loggingErrors.log" ...

并在代码中设置这些变量:

var logsDir = Environment.GetEnvironmentVariable(EnvVarLogsRoot, EnvironmentVariableTarget.Machine) ?? "Logs";
Environment.SetEnvironmentVariable(EnvVarLogsRoot, logsDir);