Log4net的appender的配置

    xiaoxiao2021-03-25  142

    在log4net的配置中,appender是最重要的部分,一般来说,每一种appender都表示一种日志的输出介质,如日志文件、EvengLog、数据库、控制台、邮件、ASP.NET页面等。

    本文对各种内置的appender的配置提供了示例,但却远称不上详尽。要想了解每一种appender的参数和选项的说明,请参看该appender的SDK文档。 

    以下示例都是.NET 2.0下进行的, log4net的版本为1.2.10。 AdoNetAppender

    详情参考 log4net.Appender. AdoNetAppender SDK文档。

    AdoNetAppender的相关配置内容取决于目标数据库的provider。下面仅提供SQL Server 2000的例子。

    首先建立数据表:

    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 ="2"   />      < connectionType  value ="System.Data.SqlClient.SqlConnection, System.Data, Version=2.0.0.0, Culture=Neutral, PublicKeyToken=b77a5c561934e089"   />      < connectionString  value ="server=(local);database=TestBase;integrated security=false;persist security info=True;UID=sa;PWD="   />      < 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 > bufferSize 表示批处理的日志事件,可以避免每次日志事件都访问数据库; ConnectionType 指定了要使用的IDbConnection的完全限定类型名称; connectionString 表示连接字符串; CommandText 是SQL语句或存储过程;最后一组 parameter 节点描述了SQL语句或存储过程需要的参数。 

    AspNetTraceAppender 

    详情参考  log4net.Appender.AspNetTraceAppender SDK 文档 。  

    < appender  name ="AspNetTraceAppender"  type ="log4net.Appender.AspNetTraceAppender"   >      < layout  type ="log4net.Layout.PatternLayout" >          < conversionPattern  value ="
    转载请注明原文地址: https://ju.6miu.com/read-11622.html

    最新回复(0)