首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在发布模式下运行Windows4.0Windows应用程序时,log4net不会记录日志

在发布模式下运行Windows4.0Windows应用程序时,log4net不会记录日志
EN

Stack Overflow用户
提问于 2010-10-29 00:49:11
回答 3查看 8.2K关注 0票数 6

我有一个使用log4net的.Net 4.0 windows服务应用程序。

这是我的log4net配置。

代码语言:javascript
运行
复制
<log4net>
  <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
    <layout type="log4net.Layout.PatternLayout">
      <conversionPattern value="%date [%thread] %-5level %logger [%property{Context}] - %message%newline" />
    </layout>
  </appender>

  <appender name="ColorConsoleAppender" type="log4net.Appender.ColoredConsoleAppender">
    <mapping>
      <level value="ERROR" />
      <foreColor value="Red, HighIntensity" />
    </mapping>
    <mapping>
      <level value="FATAL" />
      <foreColor value="Red, HighIntensity" />
    </mapping>
    <mapping>
      <level value="WARN" />
      <foreColor value="Blue, HighIntensity" />
    </mapping>
    <mapping>
      <level value="INFO" />
      <forecolor value="White, HighIntensity" />
    </mapping>
    <mapping>
      <level value="DEBUG" />
      <forecolor value="Green, HighIntensity" />
    </mapping>
    <layout type="log4net.Layout.PatternLayout">
      <conversionPattern value="%date [%thread] %-5level %logger [%property{Context}] - %message%newline" />
    </layout>
  </appender>

  <appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
    <appendToFile value="true" />
    <datePattern value="yyyyMMdd" />
    <file value="Logs/Server.log" />
    <layout type="log4net.Layout.PatternLayout">
      <conversionPattern value="%date [%thread] %-5level %logger [%property{Context}] - %message%newline" />
    </layout>
    <maximumFileSize value="10MB" />
    <rollingStyle value="Composite" />
    <staticLogFileName value="true" />
  </appender>

  <appender name="EventLogAppender" type="log4net.Appender.EventLogAppender">
    <layout type="log4net.Layout.PatternLayout">
      <conversionPattern value="%date [%thread] %-5level %logger [%property{Context}] - %message%newline" />
    </layout>
  </appender>

  <root>
    <level value="ALL" />
    <appender-ref ref="ColorConsoleAppender" />
    <appender-ref ref="RollingFileAppender" />
  </root>

</log4net>

在使用以调试模式构建的exe时,当服务启动时,日志记录按预期工作(日志文件在正确的文件路径下创建),但当它使用以发布模式构建的exe时,日志记录不起作用。

我已经尝试按照本文提到的步骤在.Net 4.0上使用重新编译的log4net dll。http://tseonet.blogspot.com/2010/07/making-log4net-run-on-net-40.html

但是,这也不起作用。

任何帮助都是非常感谢的。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-10-29 01:44:44

我建议打开内部调试,如下所示:

log4net - Appenders not working in IIS7.5

票数 8
EN

Stack Overflow用户

发布于 2010-11-29 10:59:41

感谢Deepu

向assemblyInfo文件添加assembly: log4net.Config.XmlConfigurator(Watch = true)对我来说很有效

票数 4
EN

Stack Overflow用户

发布于 2012-06-01 06:11:51

我今天偶然发现了同样的问题,在通过log4net docs之后,我做了以下工作,它对我起作用了。

代码语言:javascript
运行
复制
log4net.Config.XmlConfigurator.Configure();

我认为这将是值得分享的。下面是使用log4net作为提供程序的记录器类

代码语言:javascript
运行
复制
/// <summary>
/// Logger class using log4net library
/// </summary>
public class Log4NetLogger : ILogger
{
    public Log4NetLogger(Type configType)
    {
        log4net.Config.XmlConfigurator.Configure();
        this._logger = LogManager.GetLogger(configType);
    }

}

对我来说,程序集属性不是一个选项,因为我将日志记录功能包装到一个单独的程序集中,其中log4net是提供者之一。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4045203

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档