Как указать шаблон или токены в имени файла прослушивателя файла 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);
Другие вопросы по тегам