2010-08-29 6 views
4

Je voudrais utiliser UdpAppender de log4net avec Apache Chainsaw pour enregistrer les messages de mon application Web ASP.NET. J'ai suivi les instructions sur le site Web de log4net, mais aucun paquet UDP n'est envoyé (le pare-feu est éteint et j'ai essayé de surveiller ma machine avec TcpView - aucun paquet udp n'a été généré, d'autres fonctionnent). Le débogage de Log4net ne donne aucune erreur, UdpAppender est ajouté aux enregistreurs. Je ne sais pas ce que je manque.Comment faire fonctionner log4net avec Chainsaw sur la machine locale

Mon fichier de configuration est:

<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> 
+0

Drôle J'ai juste fait la même chose hier ... et le même résultat aussi! :) – leeand00

Répondre

1

est ici une archive d'une personne avec des problèmes similaires en utilisant le log4net udp appender: http://www.mail-archive.com/[email protected]/msg03906.html

Vous pouvez utiliser Chainsaw V2 avec un fichier texte normal si ce serait plus facile (en utilisant VFSLogFilePatternReceiver).

Une nouvelle version de Chainsaw sera bientôt disponible avec beaucoup d'améliorations. Une version préliminaire et capture d'écran sont disponibles ici:

http://people.apache.org/~sdeboy/

1

J'ai eu le même problème et a constaté que la suppression du

<localPort value="8080" /> 

résolu.

J'ai testé le appender en utilisant l'exemple sur la page UdpAppender log4net: http://logging.apache.org/log4net/release/sdk/log4net.Appender.UdpAppender.html

mais je devais changer la ligne

IPEndPoint remoteEndPoint = new IPEndPoint(IPAddress.Any, 0); 

à

IPEndPoint remoteEndPoint = new IPEndPoint(IPAddress.Any, 8080); 

Si vous utilisez, vous Je peux simplement réécrire les messages reçus dans un fichier journal tournant en utilisant log4net et je pense que Chainsaw peut lire cela.

Cela pourrait fonctionner aussi bien: http://devintelligence.com/log4netviewer/

Si cela ne fonctionne pas, vous pouvez déboguer log4net, ou utiliser le mécanisme de l'enregistreur interne mentionné dans cet article: Log4Net works on Dev machine, fails when deployed to shared host (using same db/connstring) pour résoudre d'autres problèmes.

Questions connexes