Добавить дату к имени файла журнала в блоке приложения регистрации - PullRequest
2 голосов
/ 15 апреля 2010

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

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

Ответы [ 2 ]

5 голосов
/ 14 июля 2010

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

например. Перед тем, как сделать какой-либо звонок в Блок регистрации

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

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

2 голосов
/ 03 мая 2010

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

...