2010-04-15 4 views
2

Microsoft 로깅 응용 프로그램 블록 (버전 5 베타 2)을 사용하고 있으며 로그 파일의 파일 이름을 연월일로 동적으로 설정하려고합니다 (매일 새로운 로그 파일을 작성하십시오). 그러나 런타임시 로거는 % date %, % time % 또는 % cd %와 같은 동적 환경 변수를 무시합니다. 정적 환경 변수를 파일 이름 (예 : % username %)에 추가 할 수 있지만 동적 환경 변수는 추가 할 수 없습니다. 누구든지 동적으로 로그 파일 이름에 날짜를 설정하는 롤링 플랫 파일 추적 수신기를 얻는 방법을 알고 있습니까? 로깅 응용 프로그램 블록에서 로그 파일 이름에 날짜를 추가하십시오.

(이것이 내가 파일 이름으로 설정 한 것입니다 : Log_ % 날짜 %의 .LOG) 내가 로깅 응용 프로그램 블록에 포기하고 log4net로 전환

답변

2

합니다. Log4net을 사용하면 web.config 설정을 사용하여 로그의 이름을 오늘 날짜로 설정할 수 있습니다. Code Project에 log4net을 Policy Injection Application Block으로 작업하는 방법을 보여주는 기사를 작성했습니다. here

5

@Robertc이 질문이 표시되었지만 다음 프로젝트에서 사용할 수있는 트릭이 있다고 생각합니다. : 자신의 환경 변수를 사용하십시오!

예. 적절한 롤링 플랫 파일 추적 수신기에, 당신의 app.config에서 로그 블록

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

에 대한 모든 통화를하기 전에

FileName=Log_%MYDATE%.log 

참고 : 당신이 다시 시작하면이 트릭에만 작동됩니다 매일 응용 프로그램.

관련 문제