2012-01-02 9 views
6

Sto cercando di ottenere log4net per accedere via UDP alla motosega, ma la sua non funziona su Windows 7. I miei file di configurazione sono i seguenti:Perché Wont mie voci di log log4net visualizzati in Chainsaw su 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> 

mio file di configurazione motosega si presenta così:

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

Tutto questo è per la documentazione presente in: http://logging.apache.org/log4net/release/howto/chainsaw.html

Eppure nessuno dei registri appare.

risposta

5

Capito. Sembra log4net ha problemi con IPv6 e Windows 7. Per aggirare questi problemi è necessario aggiungere una voce nel proprio file host che assomiglia a questo:

127.0.0.2  localhosttwo 

allora la vostra UpdAppender deve fare riferimento a tale voce DNS come così:

<remoteAddress value="localhosttwo" /> 

127.0.0.2 è l'indirizzo IPv6 per il tuo localmachine e avete bisogno di una voce explcit DNS o altro log4net genera un errore se si cerca di utilizzare l'indirizzo numerico nel file di configurazione.

Assicurarsi di svuotare il DNS dopo aver modificato il file host

+1

Thx per documentare la correzione. +1. Per la cronaca, su Windows Server 2012, ho notato che UdpAppender avrebbe bisogno di RemoteAddress per essere impostato su "localhost" (che avrebbe tradotto in ":: 1") anziché su 127.0.0.1 (che non analizzerà come " Indirizzo IP"). Un modo diretto per ottenere i messaggi interni di log4net è aggiungere una chiave in appSettings: (). –