Log4net 将文件写入数据库的操作

将Log4net 写入数据库的草做,也很见单,主要是对配置文件的操作

<configSections>
    <section name="log4net" type="System.Configuration.IgnoreSectionHandler"/>
  </configSections>

  <log4net>
    <!--定义输出到文件中-->
    <appender name="LogFileAppender" type="log4net.Appender.FileAppender">
      <!--定义文件存放位置-->
      <file value="D:/log4netfile.txt"/>
      <!--是否在文件中追加日志信息-->
      <appendToFile value="true"/>
      <!--文件输出以日期方式滚动-->
      <rollingStyle value="Date"/>
      <!--日志文件名以输出日期命名,可更改其他日期方式-->
      <datePattern value="yyyyMMdd-HH:mm:ss"/>
      <!--表明输出的日志信息是否一直在同一文件中-->
      <staticLogFileName value="false"></staticLogFileName>
      
      <layout type="log4net.Layout.PatternLayout">
        <!--每条日志末尾的文字说明-->
        <footer value="by D %newline"/>
        <!--输出格式-->
        <!--样例:2008-03-26 13:42:32,111 [10] INFO  Log4NetDemo.MainClass [(null)] - info-->
        <conversionPattern value="%newline记录时间:%date 线程ID:[%thread] 日志级别:%-5level 出错类:%logger property:[%property{NDC}] - 错误描述:%message%newline"/>
      </layout>
      
    </appender>-->
    <!--定义输出到数据库中-->
    <appender name="AdoNetAppender_SqlServer" type="log4net.Appender.AdoNetAppender">
      <!--缓存个数,意思是累计到多少条数据,才将数据写入数据库,一般给0,如果不写,数据将不法写入数据库-->
      <bufferSize value="0"/>
      <!--引用数据库 sql2008版本的-->
      <connectionType value="System.Data.SqlClient.SqlConnection, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
      <!--连接数据库字符串-->
      <connectionString value="data source=.;initial catalog=test;integrated security=false;persist security info=True;User ID=sa;Password=123456;"/>
      <commandText value="INSERT INTO Sys_Log ([LogDate],[Thread],[Levels],[Logger],[Message]) VALUES (@log_date,@thread,@log_level,@logger,@message)"/>
      <!--定义参数-->
      <parameter>
        <parameterName value="@log_date"/>
        <dbType value="DateTime"/>
        <layout type="log4net.Layout.PatternLayout" value="%date{yyyy'-'MM'-'dd HH':'mm':'ss'.'fff}"/>
      </parameter>
      <parameter>
        <parameterName value="@thread"/>
        <dbType value="String"/>
        <size value="255"/>
        <layout type="log4net.Layout.PatternLayout" value="%thread"/>
      </parameter>
      <parameter>
        <parameterName value="@log_level"/>
        <dbType value="String"/>
        <size value="50"/>
        <layout type="log4net.Layout.PatternLayout" value="%level"/>
      </parameter>
      <parameter>
        <parameterName value="@logger"/>
        <dbType value="String"/>
        <size value="255"/>
        <layout type="log4net.Layout.PatternLayout" value="%logger"/>
      </parameter>
      <parameter>
        <parameterName value="@message"/>
        <dbType value="String"/>
        <size value="4000"/>
        <layout type="log4net.Layout.PatternLayout" value="%message"/>
      </parameter>
    </appender>
    <!--定义日志的输出媒介,下面定义日志以四种方式输出。
      也可以下面的按照一种类型或其他类型输出。-->
    
    <!--这里的ALL是代表全部属性-->
    <root>
      <level value="ALL"/>
      <!-- 数据库日志 -->
      <appender-ref ref="AdoNetAppender_SqlServer"/>
      <!-- 文件形式记录日志 -->
      <appender-ref ref="LogFileAppender"/>
    </root>
  </log4net>

在这个配置文件中,写了两个输出,一个是对数据库,一个是对文件的,都在最后的All里面


//2.添加下面这句
[assembly: log4net.Config.XmlConfigurator(Watch = true,ConfigFile="web.config")]
public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        #region 3.写日志
        //创建日志记录组件实例
        //这里要注意,应为在配置文件中有没有写具体的文件属性
        ILog log = log4net.LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
        //ILog log = log4net.LogManager.GetLogger(typeof(_Default)); 

        //记录严重错误
        log.Fatal("fatal", new Exception("发生了一个致命错误"));
        //记录错误日志
        log.Error("error", new Exception("发生了一个异常"));        
        //记录一般信息
        log.Info("info");
        //记录调试信息
        log.Debug("debug");
        //记录警告信息
        log.Warn("warn");        
        #endregion
    }
}


这样就很简单的完成了对数据库的操作

还有一点就是补充一下另外两个两个输出方式

  <!--定义输出到控制台命令行中-->
    <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>
也是写在配置文件中,跟文件输出的样式相同,

最后附上我写的代码http://pan.baidu.com/s/1dFMIyOD



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值