2015-12-03 2 views
1

Можно ли использовать ${shortdate} в internalLogFile?

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

Я получаю ожидаемый датированный логфайл, но внутренний лог-файл с именем ... ${shortdate}_nlog.log

ответ

2

Короткий ответ: Нет

Более длинный ответ: Имя файла внутреннего регистратор просто строка. Он читается во время инициализации, а класс XmlLoggingConfiguration гарантирует, что каталог существует, тогда как (например) FileTarget использует Layout для fileName, которое преобразует значение, предоставленное с помощью LayoutRenderers.

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"; 
Смежные вопросы