设为首页 | 加入收藏

网站建设报价咨询,网站建设A套餐 网站建设报价咨询,网站建设B套餐 网站建设报价咨询,网站建设C套餐 网站建设报价咨询
手机网站制作
网络整合营销外包,长沙网站建设
您目前的位置:森达网络 >>手机网站制作
手机网站制作

长沙做网站公司分享Log4Net使用源码

本文来源: log4net配置      本文作者:长沙微信网站制作      发布时间:2017-01-14

   
长沙微信网站制作公司在开发一些大型项目的时候经常会因为项目的BUG排错而烦恼,对于数据量大的项目来说出现错误是在所难免的事情,但是怎么排错和修复是每个程序员头疼的事情。 经过多种测试方式我们选用了log4net日志记录组件,通过日志数据分析来精确的跟踪程序的运行状况。以下是经过测试能够正常运行的代码仅供参考
 
第一、log4net引用 
在项目中添加Log4Net.DLL的引用。
开发环境:win7+VS2010+sql2008
新建Web网站项目,效果图如下

 
 
 
第二、配置Log4Net
 
右键项目-》添加新建项目-》选择Web配置文件
 
log4net.config的配置文件内容如下
 
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />
</configSections>
<log4net>
<root>
      <!--<level value="ALL"/>-->
      <!--文件形式记录日志-->
      <!--<appender-ref ref="LogFileAppender" />-->
      <!--控制台控制显示日志-->
      <!--<appender-ref ref="ConsoleAppender" />-->
      <!--Windows事件日志-->
      <!--<appender-ref ref="EventLogAppender" />-->
      <!--SQLite日志-->
      <!--<appender-ref ref="AdoNetAppender_SQLite" />-->
       
      <!--RollingFileAppender事件日志-->
      <appender-ref ref="RollingFileAppender" />
      <!--RollingFileAppender事件日志,每天一个日志-->
      <!--<appender-ref ref="RollingLogFileAppender_DateFormat" />-->
      <!-- 如果不启用相应的日志记录,可以通过这种方式注释掉  
  <appender-ref ref="AdoNetAppender_Access" />  -->
      <appender-ref ref="AdoNetAppender_SQLServer" />
</root>
<logger name="Log4NetInfo">
<level value="INFO" /> 
      <appender-ref ref="rollingFile" />
</logger>
<appender name="rollingFile" type="log4net.Appender.RollingFileAppender,log4net" >
<param name="File" type="" value="log/" />
<param name="AppendToFile" value="true" />
<param name="RollingStyle" value="Date" />
<param name="DatePattern" value="yyyyMMdd &quot;.txt&quot;" />
<param name="StaticLogFileName" value="false" />
<layout type="log4net.Layout.PatternLayout,log4net">
<!--<param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n" />-->
        <param name="ConversionPattern" value="%n%n记录时间:%d %n线程ID:[%t]%n %l %n日志级别: %-5p %n错误描述:%m%n"/> 
</layout>
</appender>
 
    <appender name="AdoNetAppender_SQLServer" type="log4net.Appender.AdoNetAppender">
      <!--BufferSize为缓冲区大小,只有日志记录超10条才会一块写入到数据库-->
      <bufferSize value="1" />
      <connectionType value="System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
      <connectionString value="data source=.\MSSQL2008;initial catalog=sq8senda;integrated security=false;persist security info=True;User ID=sa;Password=123" />
      <commandText value="INSERT INTO Log ([Date],[Thread],[Levels],[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> 
  </log4net>
</configuration>
 
 
第三、将使用的方法进行封装便于调用
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using log4net;
 
namespace WebSite
{
    public class log4netClass
    {
        /// <summary>
        /// //记录调试信息
        /// </summary>
        /// <param name="message"></param>
        public static void debug(string message)
        {
            log4net.ILog log = log4net.LogManager.GetLogger("Log4NetInfo");
            if (log.IsDebugEnabled)
            {
                log.Debug(message);
            }
            log = null;
        }
        /// <summary>
        /// //记录错误日志
        /// </summary>
        /// <param name="message"></param>
        public static void error(string message)
        {
            log4net.ILog log = log4net.LogManager.GetLogger("Log4NetInfo");
            if (log.IsErrorEnabled)
            {
                log.Error(message);
            }
            log = null;
        }
        /// <summary>
        /// / //记录严重错误
        /// </summary>
        /// <param name="message"></param>
        public static void fatal(string message)
        {
 
            log4net.ILog log = log4net.LogManager.GetLogger("Log4NetInfo");
            if (log.IsFatalEnabled)
            {
                log.Fatal(message);
            }
            log = null;
        }
        /// <summary>
        /// //记录一般信息
        /// </summary>
        /// <param name="message"></param>
        /// <param name="ex"></param>
        public static void info(string message, Exception ex)
        {
            log4net.ILog log = log4net.LogManager.GetLogger("Log4NetInfo");
            if (log.IsInfoEnabled)
            {
                log.Info(message,ex);
            }
            log = null;
        }
        /// <summary>
        /// //记录警告信息
        /// </summary>
        /// <param name="message"></param>
        public static void warn(string message)
        {
            log4net.ILog log = log4net.LogManager.GetLogger("Log4NetInfo");
            if (log.IsWarnEnabled)
            {
                log.Warn(message);
            }
            log = null;
        } 
    }
}
 
第四、调用页面CS代码
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
 
namespace WebSite
{
    public partial class _Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            log4netClass.info("日志记录信息", new Exception("异常信息"));
        }
    }
}
本文由长沙做网站公司整理,转载请注明www.sendawangluo.com
 
 

版权所有:长沙森达网络工作室2011-2016 All Rights Reserved 地址:长沙市岳麓区中电软件园总部大楼 网站备案号:湘ICP备11005944号