로깅을 수행하는 참조 된 프로젝트 (RefProject로 참조 됨)가있는 프로젝트 구조가 있습니다. 그래서 RefProject에서 메소드를 호출하고 WriteLog를 Enterprise Library에 호출하면 모든 것이 기존의 Enterprise Library tracelisteners와 잘 작동합니다. 모든 엔터프라이즈 라이브러리 dll은 RefProject 프로젝트에서 참조됩니다. 모든 것이 잘 작동하고 구성은 웹 프로젝트 (여기서는 WebProject라고 함)의 web.config에서 수행됩니다 (WebProject는 RefProject를 참조하지만 EntLib dll은 참조하지 않습니다). 여기 다른 프로젝트 참조에서 참조 된 tracelistener 참조를 사용하십시오.
내가 별도 로깅 프로젝트 (본원 로깅 프로젝트라고도 함)에 맞춤 TraceListener에서 생성 한, 지금 ..<add name="Rolling Flat File Trace Listener" type="Microsoft.Practices.EnterpriseLibrary.Logging.TraceListeners.RollingFlatFileTraceListener, Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
listenerDataType="Microsoft.Practices.EnterpriseLibrary.Logging.Configuration.RollingFlatFileTraceListenerData, Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
fileName="C:\Logfiles\logger.log"
footer="" formatter="Text Formatter" header="" rollFileExistsBehavior="Increment"
rollInterval="Midnight" filter="Verbose" />
의 Web.config 구성된 표준 수신기의 일례이다. WebProject가 프로젝트 로깅을 참조하면 모든 것이 작동하고 tracelistener가 예상대로 작동합니다. RefProject Logging 프로젝트를 참조하는 경우 형식을 찾을 수 없다는 로그 파일에 쓸 때 예외가 발생합니다.
이상적으로 모든 클라이언트 응용 프로그램이이 참조를 유지해야하는 것은 아닙니다. RefProject가이 모든 일을 처리하고 싶습니다. RefProject는 이미 다른 EntLib 기본 리스너와 함께이를 처리합니다. WebProject가 아닌 다른 모든 EntLib 구성 요소가 RefProject에 의해 직접 참조 될 때 WebProject가 로거에 대한이 새 프로젝트 참조를 필요로하는 이유를 이해할 수 없습니다.
아이디어가 있으십니까?
<add listenerDataType="Microsoft.Practices.EnterpriseLibrary.Logging.Configuration.CustomTraceListenerData, Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
databaseConfig="ExceptionsDatabase" writeLogStoredProcName="WriteLog"
addCategoryStoredProcName="AddCategory" type="Logging.CustomExceptionTrackerTraceListener, GB.Logging, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"
traceOutputOptions="LogicalOperationStack, Callstack" name="Database Exception Tracking Listener"
formatter="Text Formatter" filter="Error"/>
RefProject의 로깅 참조에 대해 CopyLocal을 True로 설정 했습니까? – wageoghe
예. 이미 로컬 복사가 설정됩니다. – user1060500
해결되었습니다. 모든 것이 올바르게 설정되었지만 빌드 할 때 파일을 올바르게 bin으로 출력하지 못했습니다. 방금 폴더를 삭제하고 좋은 오래된 패션을해야했다. Clean + Rebuild. 그러면 모든 것이 예상대로 작동했다. 휴 :) – user1060500