首页 > 代码库 > Log4Net

Log4Net

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