2014-04-03 3 views
1

Log4Net을 처음 사용했습니다. 내 WCF 서비스 로깅을 위해이 로거를 사용하려고합니다.Log4Net을 사용하는 동안 로그 파일이 생성되지 않습니다.

로그 파일이 생성되지 않으므로이 방법을 사용하는 데 문제가 있습니다.

성공적으로 구축 중이며 오류는 발생하지 않습니다.

<configSections> 
     <sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> 
      <section name="Utilities.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false"/> 
      <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,Log4net"/> 
     </sectionGroup> 
    </configSections> 
    <log4net> 
    <root> 
     <level value="DEBUG"/> 
     <appender-ref ref="LogFileAppender" /> 
    </root> 
    <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender"> 
     <lockingModel type="log4net.Appender.FileAppender+MinimalLock"/> 
     <file value="c:\Avinash" /> 
     <datePattern value="dd.MM.yyyy'.log'" /> 
     <staticLogFileName value="false" /> 
     <appendToFile value="true" /> 
     <rollingStyle value="Composite" /> 
     <maxSizeRollBackups value="10" /> 
     <maximumFileSize value="5MB" /> 
     <layout type="log4net.Layout.PatternLayout"> 
     <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" /> 
     </layout> 
    </appender> 
    </log4net> 

거기에 어떤 무슨 문제가 있나요 :

여기의 app.config 내 구성입니다. 나는 많은 시간 동안 이것을 시도했다. 그러나 문제가 무엇인지 알아낼 수 없었습니다.

제안 사항

namespace Utilities 
{ 
    public class Logger 
    { 
     private static readonly log4net.ILog logger = log4net.LogManager.GetLogger 
    (System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); 

     public void log(string strErrorMessage) 
     { 
      logger.Debug(strErrorMessage); 
     } 
    } 
} 

는이 작업을 수행 할 수있는 올바른 방법인가 :

는 또한, 여기에 내가 로깅 기능을 생성 한 클래스입니다?

서비스에서 예외를 기록해야하는 예외 블록에서 log 메소드를 호출합니다.

(예를 들어, 속성을 사용하여) 로거를 초기화하는 또 다른 방법이 있습니다

XmlConfigurator.Configure(); 

를 호출하여이 구현

+0

당신의 문제는 모르겠지만 다른 DLL을로드하기 전에 log4net을 초기화해야합니다. 그렇게하고 있는지 확인하거나 로깅이 작동하지 않는지 확인하십시오. –

답변

7
<root> 
    <appender-ref ref="LogFileAppender" /> 
</root> 

실수입니까? 그것이어야합니다 :

<root> 
    <appender-ref ref="RollingLogFileAppender" /> 
</root> 
+0

@ atoMerz .. 대단히 고맙습니다. 실제 실수입니다. .. –

7

명시 적으로 아무 로그인을 시도하기 전에 로거를 초기화 할 필요가에 대한 아이디어를 적어주세요 ; this question을 참조하십시오.

+0

나는 이것을 추가했지만 여전히 도움이되지 않았다 .. –

+0

당신의 로그 파일 이름이''c : \ Avinash "'로 설정되어있는 것으로 나타났습니다. ''c : \ Avinash \ Application.log ''와 같은 파일 이름을 지정하십시오. 어쩌면 이것이 문제의 뿌리 일 수도 있습니다. –

관련 문제