2009-11-29 5 views
2

log4net을 사용하여이 쿼리를 도와주세요.log4net - 사용자 로깅

나는 우리 응용 프로그램에서 log4net을 사용하고 있습니다. 나는 사용자 수준에서 오류를 기록하도록 log4net을 구성 할 때 문제가 있습니다.

즉, 사용자 X가 로그인하면 파일 이름 X를 만들고 사용자 X의 모든 오류를 X.log에 기록해야합니다. 마찬가지로 Y 사용자 로그 파일의 로그 파일 이름이 Y.log 여야하며 가장 중요한 요점은 동시에 로그인 할 수 있다는 것입니다.

사용자가 로그인하자마자 이름이 동적으로 구성되는 로그 파일을 만들어 행운을 시험해 보았습니다.하지만 동시에 응용 프로그램을 사용하지 않는 경우 여기에서 문제가 발생하면 로그 파일이 올바른 이름으로 크롤링됩니다. 작성한 후 예상대로 작성하지만 두 사용자 모두 활성 세션이있는 경우 FIRST 로그인 사용자이고 FIRST 사용자 용으로 작성된 로그 파일에 두 번째 사용자 오류가 기록 된 경우에만 로그 파일이 작성됩니다.

도와주세요.

답변

5

더 나은 솔루션이 있어야하지만 코드에서 log4net 구성을 변경하고로드 할 구성 파일을 결정할 수도 있습니다. 따라서 XML 파일을 편집하는 것만 큼 좋지 않은 코드에서 수행 할 수 있습니다 .

당신이해야 할 일은 매우 권장하지는 않지만, 로거 정적 클래스를 호출 할 때마다 log4net 구성을 만들고 호출 사용자를 기반으로 필요한 것을하십시오.

다시 .. 느낌이 옳지 않습니다!

(성능이 좋지 않음)

다른 나은 용액 사용자 컬럼, 데이터베이스 로그 다 (log4net가 지원)이고, 다음 DB에 로그온데시벨의 로그 ....

+1

+1 생산. 각 사용자에 대한 파일 로깅은 확장되지 않습니다. – tvanfosson

+1

+1 DB에 로깅합니다. IMO가 올바른 방법입니다. 동시성/확장 성 문제가없고 깨끗한 out-of-the-box log4net 사용. –

관련 문제