Log4Net的坎坷配置之旅。

来源:互联网 发布:淘宝交不了保证金 编辑:程序博客网 时间:2024/06/04 18:12

第一步:引入dll

第二步:新建log4net.Config

第三步:AssemblyInfo.cs植入log4net.Config

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

第四步:Global.asax新增Application_Error

      protected void Application_Error(object sender, EventArgs e) {
             Exception objErr = Server.GetLastError().GetBaseException();
             log4net.ILog log = log4net.LogManager.GetLogger("小苹果-system-Administartor");
             log.Error(objErr.Message,objErr);
         }

附:

<?xml version="1.0" encoding="utf-8"?><log4net>  <appender name="AdoNetAppender" type="log4net.Appender.AdoNetAppender">    <bufferSize value="1" />   <span style="font-size:18px;"> <connectionType value="System.Data.SqlClient.SqlConnection, System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />(sql2008哦!)</span>    <connectionString value="Data Source=192.168.0.226;Initial Catalog=YourDB;Persist Security Info=True;User ID=sa;Password=123456" />    <commandText value="INSERT INTO Admin_Log4Net ([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>  <root>    <!-- Set this to "ERROR" before release -->    <!--Highest: OFF->FATAL->RROR->WARN->INFO->DEBUG->ALL :Lowest -->    <level value="ALL" />    <appender-ref ref="AdoNetAppender" />    <!-- <appender-ref ref="SmtpAppender" /> -->    <!--<appender-ref ref="FileAppender" /> -->  </root></log4net>

结果:只插了几次就插不进去了。

全盘诊断:

原来是Ibatis的日志功能占用了!

注释掉Ibatis的日志功能:

<iBATIS>
    <!--<logging>
      <logFactoryAdapter type="IBatisNet.Common.Logging.Impl.Log4NetLoggerFA, IBatisNet.Common.Logging.Log4Net">
        <arg key="configType" value="inline" />
        <arg key="showLogName" value="true" />
        <arg key="showDataTime" value="true" />
        <arg key="level" value="ALL" />
        <arg key="dateTimeFormat" value="yyyy/MM/dd HH:mm:ss:SSS" />
      </logFactoryAdapter>
    </logging>-->
  </iBATIS>

一切恢复正常。


0 1
原创粉丝点击