2012-09-09 3 views
0

Log4Net은 스레드 안전하지만 프로세스 안전하지 않기 때문에 웹 응용 프로그램에 안전합니다. 이 시나리오에서는 단일 파일을 사용하여 로그를 작성할 수 없습니다. 다른 해결책이 있습니까?웹 서비스 용 Log4Net

답변

0

파일 첨부 프로그램을 사용한다고 가정하면 DEFAULT 동작은 사용자가 입력 할 때 프로세스에 안전하지 않을 수 있습니다. 그러나 두 가지 다른 옵션이 있습니다. Log4Net의 DOCO에서

:

FileAppender는 LockingModel 속성을 통해 모델을 잠금 플러그 파일을 지원합니다. FileAppender.ExclusiveLock에 의해 구현되는 기본 동작은이 appender가 닫힐 때까지 파일에 독점 쓰기 잠금을 얻는 것입니다. 대체 모델은 appender가 로깅 이벤트 (FileAppender.MinimalLock)를 작성하거나 명명 된 시스템 전체 mutex (FileAppender.InterProcessLock)를 사용하여 동기화하는 동안 쓰기 잠금 만 보유합니다. 내가 독점 가장 성능이 좋은 것을 추정 할

<lockingModel type="log4net.Appender.FileAppender+MinimalLock" /> 

: 같은

구성 라인이 될 것이다. 귀하의 설정에서

<file type="log4net.Util.PatternString" value="%property{LogName}" /> 

그런 설정 LOGNAME의 VI의 C 번호 :

log4net.GlobalContext.Properties["LogName"] = fullPathToLogfile + afileName ; 
var configInfo = new FileInfo("configfilename.config");  
log4net.Config.XmlConfigurator.Configure(configInfo); 
이 요청하지 않은 있지만, 당신은 프로그래밍 방식 설정에서이 구문을 사용하여 파일/경로를 설정할 수