如何让log4net在本地机器上与Chainsaw一起使用

时间:2010-08-29 12:05:29

标签: log4net apache-chainsaw

我想使用log4net的UdpAppender和Apache Chainsaw来记录来自我的ASP.NET Web应用程序的消息。 我按照log4net网站上的说明进行操作,但没有发送Udp数据包(防火墙已关闭,我尝试使用TcpView监控我的机器 - 根本没有生成udp数据包;其他appender重新开始工作)。 Log4net调试没有给出任何错误,UdpAppender被添加到记录器。我不知道我错过了什么。

我的配置文件是:

<log4net debug="true">
  <renderer renderingClass="Logging.HttpContextRenderer" renderedClass="System.Web.HttpContext" />
  <appender name="UdpAppender" type="log4net.Appender.UdpAppender">
    <localPort value="8080" />
    <remoteAddress value="127.0.0.1" />
    <remotePort value="8080" />
    <layout type="log4net.Layout.XmlLayoutSchemaLog4j">
      <locationInfo value="true" />
    </layout>
  </appender>
 <root>
    <priority value="ALL"/>
    <appender-ref ref="UdpAppender"/>
  </root>
</log4net>

2 个答案:

答案 0 :(得分:1)

这是使用log4net udp appender的类似问题的人的存档: http://www.mail-archive.com/log4net-user@logging.apache.org/msg03906.html

如果更容易(使用VFSLogFilePatternReceiver),您可以将Chainsaw V2与常规文本文件一起使用。

新版本的Chainsaw将很快发布,并有很多增强功能。此处提供预发布版本和屏幕截图:

http://people.apache.org/~sdeboy/

答案 1 :(得分:1)

我也有同样的问题,发现删除了

<localPort value="8080" />

解决了它。

我使用log4net UdpAppender页面上的示例测试了appender:http://logging.apache.org/log4net/release/sdk/log4net.Appender.UdpAppender.html

但我不得不更改行

IPEndPoint remoteEndPoint = new IPEndPoint(IPAddress.Any, 0);

IPEndPoint remoteEndPoint = new IPEndPoint(IPAddress.Any, 8080);

如果你使用它,你可以使用log4net简单地将收到的消息重写为滚动日志文件,我相信Chainsaw可以读取它。

这可能也有效:http://devintelligence.com/log4netviewer/

如果这不起作用,您可以调试log4net,或使用本文中提到的内部记录器机制: Log4Net works on Dev machine, fails when deployed to shared host (using same db/connstring)解决任何其他问题。