如何在Enterprise Library Logging文件侦听器的文件名中指定模板或标记

时间:2016-04-07 12:44:06

标签: c# .net enterprise-library enterprise-library-5

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

这非常令人困惑,我绝对错过了一些东西。原因我甚至无法在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}" />

1 个答案:

答案 0 :(得分:0)

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

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

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

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