首页 新闻 会员 周边 捐助

Log4net如何配置针对远程SYSLOG服务器的输出

0
悬赏园豆:100 [待解决问题]

现在没搞明白应该怎样去写APP.CONFIG文件,搜了一下也没发现有人写过SYSLOG的配置。官方文档中的例子也没看见。。。请帮忙提供一下相关配置的例子,谢谢。只要RemoteSyslogAppender配置文件部分的设置

从外国网站找到如下例子:

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

 

我将<remoteAddress value="LOGSERVER" />中的LOGSERVER改成我的SYSLOG服务器IP地址,但经测试发现并没有成功将日志信息发到服务上。。。

Raon的主页 Raon | 初学一级 | 园豆:102
提问于:2012-12-07 14:10
< >
分享
所有回答(4)
0

好像可以配置一个数据库的地址和insert,就可以把log插入到指定的数据库表中

chenping2008 | 园豆:9836 (大侠五级) | 2012-12-07 14:35

我需要把日志写到SYSLOG服务器

支持(0) 反对(0) Raon | 园豆:102 (初学一级) | 2012-12-07 16:48

请问怎么配置呀!!!!!我想用在UpdAppender......现在要实现,通过UDP将日志传输到别的服务器的指定数据库。。。。。不会做。,。。。

支持(0) 反对(0) 啊阿强 | 园豆:166 (初学一级) | 2014-09-04 15:04
0

还要有用户名和密码吧。你远程数据库中开个只允许写摸个表的用户。

用这个用户配置到log4net的配置文件中。应该可以了吧。

上官网看看  http://logging.apache.org/log4net/  上面有说明

来自北方 | 园豆:599 (小虾三级) | 2012-12-07 16:37

我现在想把日志写到远程的SYSLOG服务器。。。不是写到数据库里面去

支持(0) 反对(0) Raon | 园豆:102 (初学一级) | 2012-12-07 16:47

@Raon: 远程是怎么弄的呀

支持(0) 反对(0) 啊阿强 | 园豆:166 (初学一级) | 2014-09-04 15:05
0

log4net 不用APP.CONFIG,只用 log4net.xml

另外,AssemblyInfo.cs 文件也要加一行 [assembly:log4net.Config.XmlConfigurator(ConfigFile="log4net.xml",Watch=true)]

杰克伦敦尘 | 园豆:274 (菜鸟二级) | 2012-12-10 14:32
0

选择对应的EventLogAppender就可以了, 给你一个完整的配置示例吧:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <configSections>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />
  </configSections>

  <log4net>
    <!--定义输出到文件中-->
    <appender name="LogFileAppender" type="log4net.Appender.FileAppender">
      <!--定义文件存放位置-->
      <file value="Log/Log.txt" />
      <appendToFile value="true" />
      
      <!--<rollingStyle value="Date" />
      <datePattern value="yyyyMMdd-HH:mm:ss" />-->
      <layout type="log4net.Layout.PatternLayout">
        <!--每条日志末尾的文字说明-->
        <footer value="Log By Log4Net " />
        <!--输出格式-->
        <!--样例:2008-03-26 13:42:32,111 [10] INFO  Log4NetDemo.MainClass [(null)] - info-->
        <conversionPattern value="%n记录时间:%date 线程ID:[%thread] 日志级别:%-5level 相关类:%logger property:[%property{NDC}] - 相关描述:%message%newline" />
      </layout>
    </appender>

    <appender name="RollingLogFileAppender_DateFormat" type="log4net.Appender.RollingFileAppender">
      <file value="D:/RollingLogFileAppender_DateFormat_log.txt" />
      <appendToFile value="true" />
      <rollingStyle value="Date" />
      <!--<datePattern value="yyyyMMdd-HHmm" />-->
      <datePattern value="yyyyMMdd" />
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date [%thread](%file:%line) %-5level %logger [%property{NDC}] - %message%newline" />
      </layout>
    </appender>

    <!--定义输出到控制台命令行中-->
    <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
      </layout>
    </appender>
    <!--定义输出到windows事件中-->
    <appender name="EventLogAppender" type="log4net.Appender.EventLogAppender">
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
      </layout>
    </appender>
    <!--定义输出到数据库中,这里举例输出到Access数据库中,数据库为C盘的log4net.mdb-->
    <appender name="AdoNetAppender_Access" type="log4net.Appender.AdoNetAppender">
      <connectionString value="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:log4net.mdb" />
      <commandText value="INSERT INTO LogDetails ([LogDate],[Thread],[Level],[Logger],[Message]) VALUES (@logDate, @thread, @logLevel, @logger,@message)" />
      <!--定义各个参数-->
      <parameter>
        <parameterName value="@logDate" />
        <dbType value="String" />
        <size value="240" />
        <layout type="log4net.Layout.PatternLayout">
          <conversionPattern value="%date" />
        </layout>
      </parameter>
      <parameter>
        <parameterName value="@thread" />
        <dbType value="String" />
        <size value="240" />
        <layout type="log4net.Layout.PatternLayout">
          <conversionPattern value="%thread" />
        </layout>
      </parameter>
      <parameter>
        <parameterName value="@logLevel" />
        <dbType value="String" />
        <size value="240" />
        <layout type="log4net.Layout.PatternLayout">
          <conversionPattern value="%level" />
        </layout>
      </parameter>
      <parameter>
        <parameterName value="@logger" />
        <dbType value="String" />
        <size value="240" />
        <layout type="log4net.Layout.PatternLayout">
          <conversionPattern value="%logger" />
        </layout>
      </parameter>
      <parameter>
        <parameterName value="@message" />
        <dbType value="String" />
        <size value="240" />
        <layout type="log4net.Layout.PatternLayout">
          <conversionPattern value="%message" />
        </layout>
      </parameter>
    </appender>
    <!--定义日志的输出媒介,下面定义日志以四种方式输出。也可以下面的按照一种类型或其他类型输出。-->
    <root>
      <level value="INFO" />
      <!-- OFF、FATAL、RROR、WARN、INFO、DEBUG、ALL -->
      <!--文件形式记录日志-->
      <appender-ref ref="LogFileAppender" />
      <!--<appender-ref ref="RollingLogFileAppender_DateFormat" />-->

      <!--控制台控制显示日志-->
      <!--<appender-ref ref="ConsoleAppender" />-->
      <!--Windows事件日志-->
      <!--<appender-ref ref="EventLogAppender" />-->
      <!-- 如果不启用相应的日志记录,可以通过这种方式注释掉
      <appender-ref ref="AdoNetAppender_Access" />
      -->
    </root>

  </log4net>
</configuration>
Gamain | 园豆:357 (菜鸟二级) | 2012-12-11 15:58

先配置好 EventLogAppender 的格式

然后在 <root>里面根据“name”属性调用相应的EventLogAppender就可以。

支持(0) 反对(0) Gamain | 园豆:357 (菜鸟二级) | 2012-12-11 16:00
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册