【问题标题】:Why wont my log4net log entries show up in Chainsaw on Windows 7为什么我的 log4net 日志条目不会出现在 Windows 7 上的 Chainsaw 中
【发布时间】:2012-01-02 19:08:26
【问题描述】:

我正在尝试让 log4net 通过 udp 登录到电锯,但它在 Windows 7 上不起作用。我的配置文件如下:

  <log4net debug="true">
<appender name="trace" type="log4net.Appender.TraceAppender, log4net">
  <layout type="log4net.Layout.PatternLayout,log4net">
    <param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n" />
  </layout>
</appender>
<appender name="UdpAppender" type="log4net.Appender.UdpAppender">
    <remoteAddress value="127.0.0.1" />
    <remotePort value="8085" />
    <layout type="log4net.Layout.XmlLayoutSchemaLog4j">
      <locationInfo value="true" />
    </layout>
</appender>
<root>
  <level value="TRACE" />
  <appender-ref ref="trace" />
  <appender-ref ref="UdpAppender" />
</root>

我的电锯配置文件如下所示:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> 
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="true">    
    <plugin name="UDPReceiver" class="org.apache.log4j.net.UDPReceiver">
        <param name="Port" value="8085" />
    </plugin>    
</log4j:configuration>

所有这些都根据以下文档:http://logging.apache.org/log4net/release/howto/chainsaw.html

但没有任何日志显示。

【问题讨论】:

    标签: windows-7 log4j log4net apache-chainsaw


    【解决方案1】:

    想通了。看起来 log4net 在 ipv6 和 windows 7 上存在问题。要解决这些问题,您需要在主机文件中添加一个如下所示的条目:

        127.0.0.2       localhosttwo
    

    那么您的 UpdAppender 需要像这样引用该 DNS 条目:

     <remoteAddress value="localhosttwo" />
    

    127.0.0.2 是本地机器的 ipv6 地址,您需要一个明确的 dns 条目,否则如果您尝试使用配置文件中的数字地址,log4net 会抛出错误。

    请确保在更改主机文件后刷新您的 dns

    【讨论】:

    • 感谢记录修复。 +1。作为记录,在 Windows server 2012 上,我注意到 UdpAppender 需要将 RemoteAddress 设置为“localhost”(它将转换为“::1”)而不是 127.0.0.1(它不会解析为“ IP地址”)。获取 log4net 内部消息的直接方法是在 appSettings 中添加一个键:()。
    猜你喜欢
    • 2012-03-11
    • 1970-01-01
    • 2011-06-05
    • 2016-08-02
    • 1970-01-01
    • 1970-01-01
    • 2010-10-25
    • 2017-06-30
    • 2012-11-14
    相关资源
    最近更新 更多