Почему мои записи журнала log4net не отображаются в Chainsaw на Windows 7 - PullRequest
6 голосов
/ 02 января 2012

Я пытаюсь заставить 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

Тем не менее, ни один из журналов не появляется.

1 Ответ

5 голосов
/ 03 января 2012

Разобрался.Похоже, что log4net имеет проблемы с ipv6 и windows 7. Чтобы обойти эти проблемы, вам нужно добавить запись в ваш файл хоста, которая выглядит следующим образом:

    127.0.0.2       localhosttwo

, тогда ваш UpdAppender должен ссылаться на эту запись DNS какИтак:

 <remoteAddress value="localhosttwo" />

127.0.0.2 - это адрес ipv6 для вашей локальной машины, и вам нужна запись explcit dns, иначе log4net выдаст ошибку, если вы попытаетесь использовать числовой адрес в файле конфигурации.

Обязательно очистите ваш DNS после изменения файла хоста

...