Log4net:SysLog Appender示例

JL.*_*JL. 17 log4net syslog

我正在寻找有关如何将Log4net日志记录到Syslog服务器的示例配置.欢迎任何帮助.

Orw*_*ile 19

我没有发现Simon Whittemore的条目非常有用,这就是让我的appender生成"正确的"syslog远程消息:

<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>
Run Code Online (Sandbox Code Playgroud)

"key"[sic]是身份参数,它产生正确的(或正确的)输出 - 我在Debian,YMMV上使用rsyslog.

绝对不需要或不想发送日期(如Simon Whittemore的博客),因为syslogd将使用服务器的时区为您添加日期.

这是从我启用log4net的应用程序收到的消息,后面是一条真实的消息:

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
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,"日期时间主机服务:消息"的基本格式都很好,不像

Jun 21 09:38:57 WARN  Irc [(null)] - OnQuit#015
Run Code Online (Sandbox Code Playgroud)

或者Simon的配置会产生的一个例子:

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 |  | 
Run Code Online (Sandbox Code Playgroud)


JL.*_*JL. 10

<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>
Run Code Online (Sandbox Code Playgroud)


Joe*_*rra 5

您可以尝试使用log4net.Appender.RemoteSyslogAppender,而不是使用较低级别的UDP appender .您可以在Simon Whittemore的博客条目中通过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>
Run Code Online (Sandbox Code Playgroud)