现在的位置: 首页 > 综合 > 正文

log4net 日志写入postgressql数据库

2013年05月23日 ⁄ 综合 ⁄ 共 2640字 ⁄ 字号 评论关闭

主要是配置文件

 <log4net>
    <!--文件日志输出-->
    <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender, log4net">
      <param name="LockingModel" type="log4net.Appender.FileAppender+MinimalLock" />
      <param name="File" value="logs/" />
      <param name="StaticLogFileName" value="false" />
      <param name="DatePattern" value="yyyy-MM-dd.'log'" />
      <param name="AppendToFile" value="true" />
      <param name="MaxSizeRollBackups" value="10" />
      <param name="MaximumFileSize" value="5MB" />
      <param name="RollingStyle" value="Date" />
      <!--Size ==- Date-->
      <!--每条日志末尾的文字说明-->      
      <layout type="log4net.Layout.PatternLayout">
        <param name="ConversionPattern" value="记录时间:%date 线程ID:[%thread] 日志级别:%-5level 出错类:%logger property:[%property{NDC}] - 错误描述:%message%newline"/>
        <!--<param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n" />-->
      </layout>
    </appender>
    <appender name="AdoNetAppender_PGSQL" type="log4net.Appender.AdoNetAppender, log4net">
      <bufferSize value="1" /> --缓存大小,日志达到多少记录然后写入数据库,这里设置为1,是为了看效果
      <connectionType value="Npgsql.NpgsqlConnection, Npgsql, Version=2.0.12.0, Culture=neutral, PublicKeyToken=5d8b90d52f46fda7"/>--这个是postgresql需要的客户端的控件。写数据库使用
      <connectionString value="Server=localhost;Database=GridGIS;Userid=postgres;Password=postgre;" />
      <commandText value="INSERT INTO log_msg (log_date,thread,logger,message,log_level) VALUES (:log_date,:thread,:logger,:message,:log_level)" />
      <parameter>
         <parameterName value="log_date" />
         <dbType value="DateTime" />
        <layout type="log4net.Layout.RawTimeStampLayout"/>
       </parameter>
      <parameter>
        <parameterName value="thread" />
        <dbType value="String" />
        <size value="255" />
        <layout type="log4net.Layout.PatternLayout">
          <conversionPattern value="%thread" />
        </layout>
      </parameter>
      <parameter>
        <parameterName value="log_level" />
        <dbType value="String" />
        <size value="255" />
        <layout type="log4net.Layout.PatternLayout">
          <conversionPattern value="%level" />
        </layout>
      </parameter>     
      <parameter>
        <parameterName value="logger" />
        <dbType value="String" />
        <size value="255" />
        <layout type="log4net.Layout.PatternLayout">
          <conversionPattern value="%logger" />
        </layout>
      </parameter>
      <parameter>
        <parameterName value="message" />
        <dbType value="String" />
        <size value="4000" />
        <layout type="log4net.Layout.PatternLayout">
          <conversionPattern value="%message" />
        </layout>
      </parameter>
    </appender>
    
    <root>
      <!--设置默认日志器-->
      <level value="DEBUG" />
      <appender-ref ref="AdoNetAppender_PGSQL" />
    </root>

  </log4net> 

在具体项目的 AssemblyInfo.cs 中(不要在封装的类库中framwork),加入

[assembly: log4net.Config.XmlConfigurator( Watch=true)] 

 此文件基本可以使用,如果不行就下载源码调试吧。一个个参数验证。

 

 

抱歉!评论已关闭.