Добавить дату в имя файла журнала в блоке приложения для ведения журнала

Я использую блок приложения Microsoft Logging (версия 5, бета 2), и я пытаюсь динамически установить имя файла журнала для года, месяца и дня (а затем каждый день записывать новый файл журнала). Однако во время выполнения средство ведения журнала игнорирует любые динамические переменные среды, такие как% date%,% time% или% cd%. Я могу добавить статические переменные среды к имени файла (например,% username%), но не динамические переменные среды. Кто-нибудь знает, как заставить прослушиватель трассировки плоских файлов динамически устанавливать дату в имени файла журнала?

(это то, что я устанавливал для имени файла как: Log_% date% .log)


person RobertC    schedule 15.04.2010    source источник


Ответы (2)


@Robertc, я знаю, что этот вопрос был отмечен, но я думаю, что у меня есть трюк, который вы можете использовать в своем следующем проекте: используйте свою собственную переменную среды!

Например. Прежде, чем вы сделаете какой-либо вызов в Блок регистрации

Environment.SetEnvironmentVariable("MYDATE", "15/07/2010"); // << change the hardcoded date to get from DateTime
Debug.WriteLine (Environment.ExpandEnvironmentVariables(@"c:\Log\Log_%MYDATE%.log"));

В вашем app.config в соответствующем прослушивателе трассировки плоских файлов Rolling

FileName=Log_%MYDATE%.log

Примечание. Этот прием сработает, только если вы перезапускаете приложение ежедневно.

person Syd    schedule 14.07.2010

Я отказался от блока приложения для ведения журнала и переключился на log4net. Log4net позволяет мне установить имя журнала на сегодняшнюю дату с помощью параметра web.config. Я написал статью о Code Project, в которой показано, как заставить log4net работать с блоком приложения для внедрения политики здесь

person RobertC    schedule 03.05.2010