Tag Archive: log4net

log4net und rsyslog

Zum Logging nutze ich innerhalb meiner Programm das hervorragende log4net.
Dieses bietet auch die Möglichkeit, die Logausgaben remote an einen rsyslogd zu senden.
Hiefür muss in der log4net.config des Programms um diesen Appender ergänzt werden:

<appender name="RemoteSyslogAppender" type="log4net.Appender.RemoteSyslogAppender">
  <identity value="programmname" />
  <layout type="log4net.Layout.PatternLayout" value="%-5p %type: %m%n"/>
  <remoteAddress value="remote.syslog.server.addresse" />
</appender>

Und natürlich der Appender aktiviert werden:

<root>
  <level value="ALL" />
  <appender-ref ref="RemoteSyslogAppender" />
</root>

Damit die Daten auf dem rsyslog Server ankommen, und entsprechend zugeordnet werden können
muss dort eine passende Config angelegt werden, in meinem Beispiel

if $source == 'server' and $programname == 'programmname' then /var/log/programmname.log

Wichtig ist, dass der Wert der „identity“ am rsyslog als „$programname“ ankommt.
Wenn jetzt Port 514 UDP zu dem rsyslog Server in der Firewall geöffnet ist, sollten die Log-Daten sauber
im passenden Logfile ankommen.