【问题标题】:log4net 1.2 RollingFileAppender not workinglog4net 1.2 RollingFileAppender 不工作
【发布时间】:2013-10-02 01:21:37
【问题描述】:

我正在使用带有 Windows 服务应用程序的 log4net v1.2。我的 RollingFileAppender 似乎不起作用。我在下面粘贴我的 service.exe.config 的日志记录部分。谁能告诉我哪里出错了?

<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net"/>

.....(很多其他配置)

<appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender,log4net" >
    <param name="File" value="D:\\Trinity\\Booking\\OneDay_PostTrade\\logs\\Trinity.log" />
    <param name="MaximumFileSize" value="20MB" />
    <param name="MaxSizeRollBackups" value="10" />
    <param name="StaticLogFileName" value="true" />
    <param name="Threshold" value="ALL" />
    <param name="RollingStyle" value="Composite" />
    <param name="appendToFile" value="true" />
    <layout type="log4net.Layout.PatternLayout,log4net">
        <param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n" />
    </layout>
</appender>

...(介于两者之间)

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

.....(介于两者之间)

<logger name="CSFB.PostTradeRulesEngine">
    <level value="ALL"/>        
</logger>   

【问题讨论】:

  • 你记得在代码中初始化它吗?
  • 如果你的意思是私有静态只读 log4net.ILog log = log4net.LogManager.GetLogger(typeof(PostTradeRules));其中 PostTradeRules 是我的班级名称,然后我做了...:)

标签: log4net rollingfileappender


【解决方案1】:

运行您的 Windows 服务的用户可能没有日志文件的写入权限。
另一种可能是你忘记执行XmlConfigurator.Configure();

【讨论】:

  • Jens,为什么我需要执行 XmlConfigurator.Configure()? M 问,因为我真的不知道。 :)
  • 这里还有一个注意事项 Jens... 我认为我使用的是旧版本的 VS,它没有 XmlConfigurator。我可以改用 BasicConfigurator 吗?
  • XmlConfigurator是log4net框架的一个类,与VS无关
  • 哦,好吧...在这种情况下,您是说我可能使用的是旧版本的 log4net.dll 本身吗?
  • @Rishi,我的错,XmlConfigurator 是在 v. 1.2.9 中引入的。如果您使用的是早期版本,这应该可以解决问题:DOMConfigurator.Configure()
【解决方案2】:

尝试写作:

<log4net debug="true">

它将所有错误发布到控制台。

【讨论】:

  • 嗨安德烈,我把这个放在哪里?
  • @Rishi Poptani 谷歌搜索一下怎么样? logging.apache.org/log4net/release/example-apps.html别偷懒
  • @Rishi Poptani 什么不起作用?从链接下载并运行示例。做他们的工作?关于 它不会解决您的问题,但会将错误输出到控制台,以便您可以分析和修复它们
【解决方案3】:

感谢所有回复的人。我不知道我改变了什么,但我的日志记录已经开始正常工作了。

发布我的日志记录部分。我没有更改代码中的任何内容,除了 AssemblyInfo.cs 中的一行: [程序集:log4net.Config.Domain(UseDefaultDomain=true)]

再次感谢。:)

【讨论】:

    猜你喜欢
    • 2016-11-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-17
    • 2011-07-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多