Log4net: L'Exemple De SysLog Appender
je cherche par exemple la configuration pour obtenir la journalisation de Log4net vers un serveur Syslog. Toute aide serait la bienvenue.
5 réponses
Je n'ai pas trouvé L'entrée de Simon Whittemore très utile, c'est ce qui a permis à mon appender de produire des messages syslog "corrects" à distance:
<appender name="RemoteSyslogAppender" type="log4net.Appender.RemoteSyslogAppender">
<identity value="HepeManok" />
<layout type="log4net.Layout.PatternLayout" value="%-5p %type: %m%n"/>
<remoteAddress value="syslog.lameserver.net" />
</appender>
la " clé " [sic] est le identité paramètre, qui produit la sortie correcte (ou correcte apparence) - j'utilise rsyslog sur Debian, YMMV.
Vous certainement ne pas avoir besoin ou ne pas vouloir envoyer la date( comme dans le blog de Simon Whittemore), comme syslogd ajoutera la date pour vous, en utilisant le fuseau.
voici un message reçu de mon application compatible log4net, suivi d'un vrai message:
Jun 21 09:58:40 vs2008.local HepeManok: INFO Irc: irc_OnConnected
Jun 21 09:42:45 chips30 kernel: [10210014.974069] device eth0 entered promiscuous mode
comme vous pouvez le voir, le format de base de "Date Time Host Service: message" est tout bon, contrairement à
Jun 21 09:38:57 WARN Irc [(null)] - OnQuit#015
ou un exemple de ce que la config de Simon produirait:
Jun 21 09:56:42 Hepe Manok.vshost.exe: 21/06/2012 07:54:44,828 | 6 | INFO | Irc | WIN-2008-DEV\Administrator | WIN-2008-DEV | dev | irc_OnConnecting | |
<appender name="UdpAppender" type="log4net.Appender.UdpAppender">
<param name="RemoteAddress" value="127.0.0.1" />
<param name="RemotePort" value="514" />
<layout type="log4net.Layout.PatternLayout, log4net">
<conversionPattern value="%-5level %logger [%property{NDC}] - %message%newline" />
</layout>
</appender>
au lieu d'utiliser l'appender UDP de niveau inférieur, vous pouvez essayer log4net.Appender.RemoteSyslogAppender. Vous pouvez trouver un exemple dans Simon Whittemore'entrée de blog enregistrement centralisé des demandes via Log4Net.
<appender name="RemoteSyslogAppender" type="log4net.Appender.RemoteSyslogAppender">
<layout type="log4net.Layout.PatternLayout" value="%date{dd/MM/yyyy hh:mm:ss,fff} | %thread | %level | %logger | %username | %P{log4net:HostName} | dev | %message | %exception | "/>
<remoteAddress value="LOGSERVER" />
<filter type="log4net.Filter.LevelRangeFilter">
<levelMin value="ALL" />
</filter>
</appender>
Vous pouvez aussi donner syslog4net un essai. syslog4net fonctionne en créant une mise en page log4net personnalisée qui écrit des messages dans les RFC5424 format standard. Vous pouvez ensuite brancher cela à n'importe quel appender log4net. Vous pouvez écrire à un démon Syslog, splunk, ou n'importe quel agrégateur de données machine assez facilement en connectant notre classe SyslogLayout à UdpAppender de log4net ou à TcpAppender personnalisé de syslog4net.
la Documentation, l'usage et les exemples sont disponibles sur le site le site GitHub du projet.
mes serveurs sont connectés à un serveur ubuntu qui exécute syslog-ng. Pour afficher correctement le nom d'hôte, j'ai utilisé ceci:
<appender name="RemoteSyslogAppender" type="log4net.Appender.RemoteSyslogAppender">
<facility value="local7" />
<identity value=" %date{yyyy-MM-ddTHH:mm:ss.ffffffzzz} %P{log4net:HostName} %P{app}" />
<RemoteAddress value="192.168.1.248" />
<layout type="log4net.Layout.PatternLayout" value="	%P{pid}:%logger %m%n"/>
<RemotePort value="516" />
</appender>