4

我想使用 log4net 的 UdpAppender 和 Apache Chainsaw 来记录来自我的 ASP.NET Web 应用程序的消息。我按照 log4net 网站上的说明进行操作,但没有发送 Udp 数据包(防火墙已关闭,我尝试使用 TcpView 监视我的机器 - 根本没有生成 udp 数据包;其他附加程序正在工作)。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>
4

2 回答 2

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/

于 2010-09-04T17:30:07.137 回答
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 在 Dev 机器上运行,在部署到共享主机时失败(使用相同的 db/connstring)来解决任何进一步的问题。

于 2010-09-14T20:38:03.633 回答