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.

15
demandé sur Peter 2010-01-06 11:48:03

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 |  | 
18
répondu Orwellophile 2014-05-13 14:19:19
<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>
9
répondu JL. 2010-01-06 09:11:53

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>
4
répondu Joel Purra 2012-01-19 09:03:23

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.

3
répondu domlachowicz 2014-02-28 13:43:16

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="&#9;%P{pid}:%logger %m%n"/>
    <RemotePort value="516" />
  </appender>
1
répondu CircaLucid 2013-10-23 19:01:21