是否可以在internalLogFile中使用$ {shortdate}?

时间:2015-12-03 09:26:52

标签: nlog

是否可以使用${shortdate}中的internalLogFile

<nlog internalLogFile="C:\Logs\${shortdate}_nlog.log"
    <targets>
        <target name="logfile"
                fileName="C:/logs/${shortdate}_dev.log"
        </target>

我收到了预期的日期日志文件,但内部日志文件名为... ${shortdate}_nlog.log

2 个答案:

答案 0 :(得分:2)

简短回答:不。

更长的答案:内部记录器文件名只是一个字符串。它在初始化期间读入,XmlLoggingConfiguration类确保目录存在,而(例如)FileTarget使用Layout for fileName转换使用{LayoutRenderers提供的值1}}。

答案 1 :(得分:2)

https://github.com/NLog/NLog/issues/581#issuecomment-74923718

通过阅读他们的评论我的理解是内部日志记录应该简单,稳定并且谨慎使用。通常,您只能在尝试弄清楚设置出错时才打开它。

如果需要,您仍然可以根据日期时间动态命名内部日志文件。但是它不会像目标文件那样具有相同的翻转效果。每当你初始化你的记录器时,它基本上会有不同的日期时间。

DateTime dt = DateTime.Now;                
NLog.Common.InternalLogger.LogFile = @"C:\CustomLogs\NLog_Internal\internal_NLogs" + dt.ToString("yyyy-MM-dd") + ".txt";