2014-02-20 5 views
1

COM이 표시되고 일부 레거시 코드에서 볼 수 있도록 구성 요소 서비스 응용 프로그램에 설치된 .NET 개체가 있습니다.log4net - 로깅 구성의 문제 추적

구성 요소 서비스 응용 프로그램은 응용 프로그램 루트 디렉터리로 구성됩니다.

응용 프로그램 루트 디렉터리에 application.config 파일이 있습니다. application.config 파일에

나는

<log4net> 
    <appender name="file" type="log4net.Appender.RollingFileAppender"> 
     <file value="C:\application\Logs\legacycomponents.log" /> 
     <appendToFile value="true" /> 
     <lockingModel type="log4net.Appender.FileAppender+MinimalLock" /> 
     <layout type="log4net.Layout.PatternLayout"> 
     <conversionPattern value="%property{log4net:HostName} %date [%thread] %-5level %logger - %message%newline" /> 
     </layout> 
     <rollingStyle value="Date" /> 
     <maxSizeRollBackups value="7" /> 
     <datePattern value="yyyyMMdd" /> 
    </appender> 
    <root> 
     <level value="DEBUG" /> 
     <appender-ref ref="file" /> 
    </root> 
    </log4net> 

내 코드가 포함되어 있습니다 : 다음 다양한 수준에서 아주 자세하게 로그인있어

/// <summary> 
    /// Gets the Log4Net Logging component 
    /// </summary> 
    protected ILog Logger 
    { 
     get 
     { 
      return LogManager.GetLogger(this.GetType()); 
     } 
    } 

내 코드를 통해.

그리고 아무것도 기록하지 않습니다. log4net 뭔가를 할 것을 보여줍니다 DebugView와 함께 모니터링

<configuration> 
    <appSettings> 
    <add key="log4net.Internal.Debug" value="true"/> 
    </appSettings> 
</configuration> 

그리고, :

내가 설정 한 log4net 내부 디버그 진흙 :

만큼 분명하다

[3064] log4net: DefaultRepositorySelector: Creating repository for assembly [Legacy.Component, Version=6.1.0.0, Culture=neutral, PublicKeyToken=1916d4122ec2e2e8] 
[3064] log4net: DefaultRepositorySelector: Assembly [Legacy.Component=6.1.0.0, Culture=neutral, PublicKeyToken=1916d4122ec2e2e8] Loaded From [C:\product\ASP\bin\legacy.component.dll] 
[3064] log4net: DefaultRepositorySelector: Assembly [Legacy.Component, Version=6.1.0.0, Culture=neutral, PublicKeyToken=1916d4122ec2e2e8] does not have a RepositoryAttribute specified. 
[3064] log4net: DefaultRepositorySelector: Assembly [Legacy.Component=6.1.0.0, Culture=neutral, PublicKeyToken=1916d4122ec2e2e8] using repository [log4net-default-repository] and repository type [log4net.Repository.Hierarchy.Hierarchy] 
[3064] log4net: DefaultRepositorySelector: repository [log4net-default-repository] already exists, using repository type [log4net.Repository.Hierarchy.Hierarchy] 

그래서 왜 내 개체에서 로그 아웃하지 않는지 확인하기 위해 다른 것을 볼 수 없습니다.

현재 더 나은 문제 해결 정보를 찾을 수 없습니다.

아이디어가 있으십니까?

감사합니다.

답변

1

나는 그랬을 것이라고 가정합니다. 이 명령을 실행 했습니까?

log4net.Config.XmlConfigurator.Configure(); 

이 명령은 log4net 구성을로드하지는 않더라도 수행 할 수 없습니다.

<log4net debug="true"> 
    <appender name="rollingFile" type="log4net.Appender.RollingFileAppender"> 
     <param name="File" value="Logs\log.txt"/> 
     <param name="AppendToFile" value="true"/> 
     <param name="RollingStyle" value="Date"/> 
     <param name="DatePattern" value="yyyy.MM.dd"/> 
     <param name="StaticLogFileName" value="true"/> 
     <layout type="log4net.Layout.PatternLayout"> 
      <param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n"/> 
     </layout> 
    </appender> 
    <root> 
     <level value="INFO"/> 
     <appender-ref ref="rollingFile"/> 
    </root> 
</log4net> 
+1

아아 :

또한, 그와 같은 디버그 옵션을 사용합니다. 일반적으로 어셈블리가 현재 상태를 상속하도록 이미 호출되었습니다. 레거시 com 탑재 래퍼에서 그것은 일어나지 않았습니다. 지금 고마워. – THEMike