2012-02-01 3 views
0

.Net 추가 기능 프레임 워크에서 추가 기능을 사용하는 응용 프로그램을 만들고 있습니다. log4net을 사용하여 추가 기능 내부에서 무슨 일이 일어나는지 추적하고 싶지만 기록 된 데이터를 출력 파일에 쓸 수는 없습니다. Log4net을 호스트와 함께 사용하고 있습니다. 이것은 .config 파일에서 구성을 얻을 수 log4net을 말해야추가 기능에서 log4net을 사용하는 .NET 추가 기능 프레임

[assembly: log4net.Config.XmlConfigurator(Watch = true)] 

: 내 추가 기능의의 AssemblyInfo.cs에서

나는 코드 줄을 추가했습니다. 추가 기능에 대한

내의 app.config는 다음과 같습니다 : 예상대로

<?xml version="1.0" encoding="utf-8" ?> 
<configuration> 
    <system.diagnostics> 
    <trace autoflush="true" indentsize="4"> 
     <listeners> 
     <add name="myListener" type="System.Diagnostics.TextWriterTraceListener" 
      initializeData="UpdateModuleLog.log" /> 
     <remove name="Default" /> 
     </listeners> 
    </trace> 
    </system.diagnostics> 
    <log4net> 
    <appender name="TraceAppender" type="log4net.Appender.TraceAppender"> 
     <layout type="log4net.Layout.PatternLayout"> 
     <conversionPattern 
      value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" /> 
     </layout> 
    </appender> 
    <root> 
     <level value="INFO"/> 
     <appender-ref ref="TraceAppender"/> 
    </root> 
    </log4net> 
</configuration> 

추가 기능의의 app.config 파이프 라인으로 이동됩니다. 내 추가 기능에서

, 나는 인스턴스화 다음 코드를 log4net :

private static readonly log4net.ILog log = log4net.LogManager.GetLogger 
     (System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); 

마지막으로, 나는이 같은 내 코드에서 log4net를 호출

 log.InfoFormat("Starting Update Module Version 1.0.0 for Internationalization Database."); 

문제는 UpdateModuleLog.log는 점이다 결코 창조되지 않았다. 호스트 응용 프로그램의 bin 폴더 나 파이프 라인의 추가 기능 폴더에 만들어지기를 기대하지만 어느 위치에도 존재하지 않습니다. 나는 TraceAppender를 사용하고 있습니다. 왜냐하면 Debug 나 Trace에 기록 된 내용을 같은 파일에 기록하기를 원하지만 별도의 파일에 기록해야하는 경우 그렇게해야합니다.

또한 호스트 프로세스의 로그 파일은 추가 기능에서 수행 된 로깅을 반영하지 않습니다.

답변

0

답을 찾았습니다. 내 app.config에 다음 코드 섹션이 누락되었습니다.

<configSections> 
    <section name="log4net" 
     type="log4net.Config.Log4NetConfigurationSectionHandler, 
      log4net"/> 
    </configSections> 
관련 문제