2014-02-20 54 views
1

我有一個.NET對象,它是COM可見的,並安裝在組件服務應用程序中,以使其對於一些遺留代碼可見。log4net - 跟蹤記錄配置問題

組件服務應用程序配置有應用程序根目錄。

在應用程序的根目錄中我有一個application.config文件。

IN的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的內部調試:

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

而且隨着監控的DebugView,這表明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