我有一个COM可见的.NET对象,并安装在组件服务应用程序中,以使其对某些遗留代码可见。
组件服务应用程序配置了应用程序根目录。
在应用程序根目录中,我有一个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内部调试:
<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]
这与泥浆一样清晰:)
所以我看不到任何其他东西要检查我为什么没有从我的对象中退出。
我目前无法在任何地方找到任何更好的故障排除信息。
有什么想法吗?
由于
答案 0 :(得分:2)
我想你做到了,但只是为了确保。你也运行了这个命令吗?
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>