2011-09-13 3 views
2

C# 4로 작성된 Windows 서비스의 경우 log4net을 구성하여 제대로 작동합니다. 그러나 생산 단계에 있지는 않습니다.log4net 로그 파일이 비어있는 상태로 생산 중이며, 개발 중이 아닙니다.

여기 내 설정이다 : 내

<?xml version="1.0" encoding="utf-8" ?> 
<configuration> 
    <configSections> 
     <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" /> 
    </configSections> 

    <log4net> 
     <appender name="FileAppender" type="log4net.Appender.RollingFileAppender"> 
      <file value="Logs/Log.xml"/> 
      <appendToFile value="true"/> 
      <rollingStyle value="Size"/> 
      <maxSizeRollBackups value="10"/> 
      <maximumFileSize value="100MB"/> 
      <layout type="log4net.Layout.XmlLayout"> 
       <param name="Prefix" value=""/> 
      </layout> 
     </appender> 

     <root> 
      <level value="ALL"/> 
      <appender-ref ref="FileAppender"/> 
     </root> 
    </log4net> 
</configuration> 

AssemblyInfo.cs 내가 가진 : 나는 로컬 응용 프로그램을 실행하면 예상대로

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

는 물건은 로그에 기록됩니다. 서버에서 실행할 때 로그 파일은 올바른 경로에 생성되지만 비어 있습니다. 하나의 문자가 로그에 기록되지 않습니다.

파일이 적절한 확장자로 올바른 위치에 있으므로 분명히 구성을 선택하고 있습니다.

+2

내부 디버깅을 사용하는 것이 좋습니다. 즉, log4net에 장애가 발생하면 이유를 확인해야합니다. 자세한 내용은 http://logging.apache.org/log4net/release/faq.html을 참조하십시오. #internalDebug – sgmoore

+0

해결책을 찾았습니까? A와 동일한 문제가 있습니다 –

+1

일종의 정렬에서 어셈블리로부터'[assembly : log4net.Config.XmlConfigurator (Watch = true)]'행을 제거하고 응용 프로그램 시작시 코드에서 그 행을 제거했습니다. –

답변

0

이것은 바보 같은 질문입니다 ...하지만 서비스가 올바르게 시작되었고 물건을 다하고 있습니까?

나는 콘솔 appender와 어쩌면 eventlong appender도 추가 할 것이고 가능한 한 콘솔 앱으로 서비스를 실행 해 보길 원하십니까?

로그 파일이 만들어지고 있기 때문에 log4net을 사용하면 문제가없는 것 같습니다 ...?

1

해결 방법으로 어셈블리에서 [assembly: log4net.Config.XmlConfigurator(Watch = true)] 줄을 제거하고 응용 프로그램 시작시 코드에서 변경했습니다.

0

방금 ​​동일한 문제가 있었지만 [assembly : log4net.Config.XmlConfigurator (Watch = true)]가 어셈블리 정보 대신 ninjectwebcommon 파일에있었습니다. 내가 assemblyinfo로 이동 한 후 작동 시작

관련 문제