从我看来看,企业库不允许使用文件名中的标记,这很奇怪,因为所有其他日志记录解决方案都有。
这非常令人困惑,我绝对错过了一些东西。原因我甚至无法在flat或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}" />
答案 0 :(得分:0)
我所知道的唯一解决方案(不包括程序设置)现在正在使用过程级别的环境变量
<add name="loggingErrorsLog"
fileName="%LOGS_DIR%\%PROCESSNAME%\loggingErrors.log" ...
并在代码中设置这些变量:
var logsDir = Environment.GetEnvironmentVariable(EnvVarLogsRoot, EnvironmentVariableTarget.Machine) ?? "Logs";
Environment.SetEnvironmentVariable(EnvVarLogsRoot, logsDir);