2014-02-20 55 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