롤링 로그 4NET 로그 파일의 사용자 정의 파일 이름?
문제
ASP .NET 애플리케이션이있어 앱 내에서 로그 4NET을 사용하여 새로운 것이 없으며 롤링 로그 파일 이름은 일반적인 형식입니다.
rolling-log.txt
rolling-log.txt.1
rolling-log.txt.2 etc.
응용 프로그램의 각 사용자는 로그 파일에 추가하고 특정 사용자의 경우에 대해 로그 파일을 읽기가 어려울 수 있으므로 구성 파일을 수정하여 사용자의 로그 세부 정보를 개별적으로 기록하고 각 파일에 쓰기를 원합니다. , 예를 들어
<applicationId>rolling-log.txt
<applicationId>rolling-log.txt.1
<applicationId>rolling-log.txt.2
etc.
5 자리 숫자로 구성된 각 사용자의 고유 한 응용 프로그램 ID는 어디에 있습니까?
12345rolling-log.txt
가능하다고 가정 할 때 이것을 구현하는 가장 좋은 방법에 대한 아이디어가 있습니까?
건배
브렛
해결책
log4net 컨텍스트 속성을 찾으십시오 ...
코드에서 :
log4net.GlobalContext.Properties["id"] = "12345";
그 다음에
log4net.Config.XmlConfigurator.ConfigureAndWatch(new FileInfo("configPath"));
log4net 구성 파일에서 :
<file type="log4net.Util.PatternString"
value="%property{id}rolling-log.txt" />
다른 팁
<file type="log4net.Util.PatternString">
<conversionPattern value="C:\Logs\log-%date{ yyyy.MM.dd.HH.mm.ss}-[%processid].log" />
</file>
Log4Net 구성 파일은 환경 변수 (예 : 사용자 이름)와 사용자가 원하는 것을 제공 해야하는 사용자 정의 가능한 패턴을 지원한다고 생각합니다.
"PatternString for Pattern Based Configuration" LOG4NET v1.2.10 릴리스 노트.
사용자 당 로그 파일이 불가능하다고 생각하지 않지만 로그에 쓰기 전에 사용자 ID를 준비하는 Log4Net과 응용 프로그램간에 사용자 정의 계층을 작성할 수 있습니다.
xmllayoutbase의 상속으로 사용자 정의 레이아웃을 작성할 수 있습니다.
RollingFatternFileAppender를 체크 아웃합니다. RollingFileAppender와 동적 파일 이름처럼http://mysite.verizon.net/vze14bhji