码迷,mamicode.com
首页 > Web开发 > 详细

Log4Net

时间:2016-12-03 12:06:28      阅读:239      评论:0      收藏:0      [点我收藏+]

标签:man   hand   thread   source   level   发送   size   table   date   

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

  <log4net debug="true">
    <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
      <!--file可以指定具體的路徑 eg : d:\\test.log。不指定的話log被生成在專案的bin/Debug 或者 bin/Release目錄下 (web的專案 預設生成在根目錄下)-->
      <file value="logs\\chkfare\\error\\error.txt" />
      <appendToFile value="true" />
      <rollingStyle value="Date" />
      <datePattern value="yyyyMMdd‘.log‘" />
      <staticLogFileName value="false" />
      <layout type="log4net.Layout.PatternLayout">
        <!--指定log的格式-->
        <conversionPattern value="[%date]  %thread -- %-5level -- %logger [%M] -- %message%newline" />
      </layout>
    </appender>
    <appender name="AdoNetAppender" type="log4net.Appender.AdoNetAppender">
      <param name="bufferSize" value="0" />
      <param name="connectionType" value="System.Data.SqlClient.SqlConnection" />
      <param name="connectionString" value="Connection Timeout=1;data source=.;initial catalog=ErrorLogDB;integrated security=false;persist security info=True;User ID=sa;Password=password" />
      <param name="commandText" value="INSERT INTO OTB_TKT_Log ([Date],[Thread],[Level],[Logger],[Message],[Exception]) VALUES (@log_date, @thread, @log_level, @logger, @message, @exception)" />
      <param name="parameter" type="log4net.Appender.AdoNetAppenderParameter">
        <param name="parameterName" value="@log_date" />
        <param name="dbType" value="DateTime" />
        <param name="layout" type="log4net.Layout.RawTimeStampLayout" />
      </param>
      <param name="parameter" type="log4net.Appender.AdoNetAppenderParameter">
        <param name="parameterName" value="@thread" />
        <param name="dbType" value="String" />
        <param name="size" value="255" />
        <param name="layout" type="log4net.Layout.PatternLayout">
          <param name="conversionPattern" value="%thread" />
        </param>
      </param>
      <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>
    <appender name="SmtpAppender" type="log4net.Appender.SmtpAppender">
      <authentication value="Basic" />
      <to value="发送的目标邮箱 例如 to@qq.com" />
      <from value="从哪里发出的邮箱 例如 from123456@qq.com" />
      <username value="邮箱账号 例如 from123456" />
      <password value="邮箱密码" />
      <subject value="网站报错" />
      <smtpHost value="smtp.qq.com" />
      <bufferSize value="512" />
      <lossy value="true" />
      <evaluator type="log4net.Core.LevelEvaluator">
        <threshold value="Error"/>
      </evaluator>
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%n记录时间:%date 线程ID:[%thread] 日志级别:%-5level 出错类:%logger property:[%property{NDC}] - %n错误描述:%message%newline%n%exception% %n" />
      </layout>
    </appender>
    <root>
      <level value="DEBUG" />
      <!--指定將此級別及以上的log列印到log檔中-->
      <appender-ref ref="RollingLogFileAppender" />
      <appender-ref ref="AdoNetAppender" />
      <appender-ref ref="SmtpAppender" />
    </root>

    </log4net>
</configuration>

 

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
) ON [PRIMARY]

 

        public static readonly ILog mo_Log = LogManager.GetLogger(
        System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);//記錄異常

 

[assembly: log4net.Config.XmlConfigurator(ConfigFile = "Log4Net.config", Watch = true)]

 

Mysql

    <appender name="AdoNetAppenderForMySql" type="log4net.Appender.AdoNetAppender">
      <param name="bufferSize" value="0" />
      <param name="connectionType" value="MySql.Data.MySqlClient.MySqlConnection, MySql.Data" />
      <param name="connectionString" value="Connection Timeout=1;Server=localhost;Database=ErrorLogDB; User=root;Password=password;Use Procedure Bodies=false;Charset=utf8;Allow Zero Datetime=True; Pooling=false; Max Pool Size=50;" />
      <param name="commandText" value="INSERT INTO Log (Date,Thread,Level,Logger,Message,Exception) VALUES (@log_date, @thread, @log_level, @logger, @message, @exception)" />
      <param name="parameter" type="log4net.Appender.AdoNetAppenderParameter">
        <param name="parameterName" value="@log_date" />
        <param name="dbType" value="DateTime" />
        <param name="layout" type="log4net.Layout.RawTimeStampLayout" />
      </param>
      <param name="parameter" type="log4net.Appender.AdoNetAppenderParameter">
        <param name="parameterName" value="@thread" />
        <param name="dbType" value="String" />
        <param name="size" value="255" />
        <param name="layout" type="log4net.Layout.PatternLayout">
          <param name="conversionPattern" value="%thread" />
        </param>
      </param>
      <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>
CREATE TABLE `log` (
  `Id` int(11) NOT NULL AUTO_INCREMENT,
  `Date` datetime NOT NULL,
  `Thread` varchar(255) NOT NULL DEFAULT ‘‘,
  `Level` varchar(255) NOT NULL DEFAULT ‘‘,
  `Logger` varchar(255) NOT NULL DEFAULT ‘‘,
  `Message` varchar(4000) NOT NULL DEFAULT ‘‘,
  `Exception` varchar(4000) NOT NULL DEFAULT ‘‘,
  PRIMARY KEY (`Id`)
)  AUTO_INCREMENT=7 DEFAULT CHARSET=utf8;

 

Log4Net

标签:man   hand   thread   source   level   发送   size   table   date   

原文地址:http://www.cnblogs.com/chen110xi/p/6128134.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!