Как указать шаблон или токены в имени файла прослушивателя файла Enterprise Library Logging
Из того, что я прочитал, видно, что корпоративная библиотека не допускает токены в имени файла, что очень странно, потому что все другие решения для ведения журналов делают это.
Это очень запутанно, я определенно что-то упускаю. Причина Я даже не могу указать имя процесса в прослушивателе плоского или непрерывного файла.
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 ответ
Решение
Единственное решение, которое я знаю (исключая программную настройку), теперь использует переменные среды на уровне процесса
<add name="loggingErrorsLog"
fileName="%LOGS_DIR%\%PROCESSNAME%\loggingErrors.log" ...
И установить эти переменные в коде:
var logsDir = Environment.GetEnvironmentVariable(EnvVarLogsRoot, EnvironmentVariableTarget.Machine) ?? "Logs";
Environment.SetEnvironmentVariable(EnvVarLogsRoot, logsDir);