2010-04-15 1 views
2

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

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

ответ

2

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

5

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

E.g. Перед тем, как сделать любой вызов к Logging блоку

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 в соответствующем Роллинг плоского файл трассировка слушатель

FileName=Log_%MYDATE%.log 

Примечание: Этот трюк будет работать только при перезагрузке вашего приложение ежедневно.

Смежные вопросы