문제

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

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top