log4net的使用

来源:互联网 发布:fastjson 解析json 编辑:程序博客网 时间:2024/05/29 17:14

Log4Net的使用

一、             配置web.config

   <configSections>

   <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />

   </configSections>

  <log4net>

<!-可以生成一个网页文件,以当前日期为文件名,如果大于100K会回滚文件-à

    <appender name="RollingLogFileAppender"

    type="log4net.Appender.RollingFileAppender">

      <param name="File" value="C://BitTimeLog//" />

      <param name="AppendToFile" value="true" />

      <param name="MaxSizeRollBackups" value="100" />

      <param name="StaticLogFileName" value="false" />

      <param name="DatePattern" value="yyyyMMdd&quot;.htm&quot;" />

      <param name="RollingStyle" value="Date" />

      <layout type="log4net.Layout.PatternLayout">

        <param name="ConversionPattern" value="&lt;HR COLOR=red&gt;%n异常时间:%d [%t] &lt;BR&gt;%n异常级别:%-5p

&lt;BR&gt;%n 类:%c [%x] &lt;BR&gt;%n%m &lt;BR&gt;%n &lt;HR Size=1&gt;" />

      </layout>

    </appender>

    <root>

      <level value="ERROR" />

      <appender-ref ref="RollingLogFileAppender" />

    </root>

  </log4net>

 

注意:上面配置文件的appender节可以换成下面的,只需要将<appender-ref ref="RollingLogFileAppender" />中的ref属性更换即可。

  <appender name="LogFileAppender" type="log4net.Appender.FileAppender" >

    <!--日志文件存放路径,如果没有将自动创建-->

    <param name="File" value="c:/Applog.txt" />

 

    <param name="datePattern" value="yyyy-MM-dd HH:mm" />

    <param name="AppendToFile" value="true" />

    <layout type="log4net.Layout.PatternLayout">

      <!--t:thread;p:日志级别;m:message;n:newline-->

      <param name="ConversionPattern" value="【日期:%d [%t] 【日志级别:%-5p 【文件:%c [%x] - 【日志信息:】%m%n" />

 

    </layout>

 

  </appender>

  <appender name="HttpTraceAppender" type="log4net.Appender.ASPNetTraceAppender" >

    <layout type="log4net.Layout.PatternLayout">

      <param name="ConversionPattern" value="%d [%t] %-5p %c [%x] - %m%n" />

 

    </layout>

 

  </appender>

  <appender name="EventLogAppender" type="log4net.Appender.EventLogAppender" >

    <layout type="log4net.Layout.PatternLayout">

      <param name="ConversionPattern" value="%d [%t] %-5p %c [%x] - %m%n" />

 

    </layout>

 

  </appender>

  <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">

    <param name="File" value="C:/Log.txt" />

    <param name="AppendToFile" value="true" />

    <param name="MaxSizeRollBackups" value="10" />

    <param name="MaximumFileSize" value="5MB" />

    <param name="RollingStyle" value="Size" />

    <param name="StaticLogFileName" value="true" />

    <layout type="log4net.Layout.PatternLayout">

      <param name="ConversionPattern" value="%d [%t] %-5p %c [%x] - %m%n" />

 

    </layout>

 

  </appender>

  <!--将日志纪录到Sql Server-->

  <!--创建数据表-->

  <!--CREATE TABLE [dbo].[Log] (

   [Id] [int] IDENTITY (1, 1) NOT NULL,

   [Date] [datetime] NOT NULL,

   [Thread] [varchar] (255) NOT NULL,

   [Level] [varchar] (50) NOT NULL,

   [Logger] [varchar] (255) NOT NULL,

   [Message] [varchar] (4000) NOT NULL,

   [Exception] [varchar] (2000) NULL

)

         -->

 

  <appender name="AdoNetAppender" type="log4net.Appender.AdoNetAppender">

    <bufferSize value="0" />

    <!--log信息达到2条时,不写入数据库 ,log信息达到3条才会被写到数据库中-->

    <!--如果要及时查询错误日志则需要设置0,不需要缓冲-->

    <connectionType value="System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />

    <connectionString value="ConnectionString = ${cc_2005}" />

    <!--<connectionString value="Data Source=(local);Initial Catalog=northwind;Integrated Security=True"/>-->

    <commandText value="INSERT INTO Log ([Date],[Thread],[Level],[Logger],[Message],[Exception]) VALUES (@log_date, @thread, @log_level, @logger, @message, @exception)" />

    <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="50" />

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

    <parameter>

      <parameterName value="@exception" />

      <dbType value="String" />

      <size value="2000" />

      <layout type="log4net.Layout.ExceptionLayout" />

    </parameter>

  </appender>

  <!--导出日志为Xml格式-->

  <appender name="XmlFileAppender" type="log4net.Appender.FileAppender">

    <file value="c://log.txt" />

    <appendToFile value="true" />

    <layout type="log4net.Layout.XmlLayoutSchemaLog4j">

      <locationInfo value="true" />

    </layout>

  </appender>

 

二、在global.asax文件配置全局

Application_Start

log4net.Config.XmlConfigurator.Configure();

三、开始在webform中使用日志

首先在页面声明一个静态的只读的字段log

private static readonly log4net.ILog log =

log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);

 

在需要记录日志的地方

Log.Error(….);

 
原创粉丝点击