2012-01-02 97 views
6

我試圖讓log4net的通過UDP記錄到電鋸,但它不工作在Windows 7上我的配置文件如下:爲什麼慣於我log4net的日誌條目電鋸顯示在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> 

我電鋸的配置文件看起來是這樣的:http://logging.apache.org/log4net/release/howto/chainsaw.html

<?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> 

所有這一切都是按照文檔中找到

但是沒有一個日誌顯示出來。

回答

5

想通了。看起來像log4net的與IPv6的問題和Windows 7要解決這些問題,就需要添加一個條目到您的主機文件看起來像這樣:

127.0.0.2  localhosttwo 

那麼你UpdAppender需要引用DNS條目這樣:

<remoteAddress value="localhosttwo" /> 

127.0.0.2是IPv6地址爲您LOCALMACHINE,你需要一個explcit DNS條目,否則log4net的將拋出一個錯誤,如果你嘗試在配置文件中使用的數字地址。

確保在更改主機文件後刷新您的dns

+1

Thx用於記錄修復。 +1。對於Windows Server 2012的記錄,我注意到UdpAppender需要將RemoteAddress設置爲「localhost」(它將轉換爲「:: 1」)而不是127.0.0.1(它不會將其解析爲「 IP地址」)。直接獲取log4net內部消息的方法是在appSettings中添加一個鍵:()。 – 2012-12-11 15:11:17

相關問題