log4net基础应用,实现项目日志文件开启!

来源:互联网 发布:知春大厦b座 户型图 编辑:程序博客网 时间:2024/06/05 04:55

1:首先添加log4net的使用
打开程序包控制台,输入Install-Package log4net,下载;
2:添加log4net配置文件:
这个log4net.config配置文件

<?xml version="1.0"?><configuration>  <configSections>    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net"/>  </configSections>  <log4net>    <!--错误日志配置-->    <appender name="ErrorAppender" type="log4net.Appender.RollingFileAppender">      <param name="File" value="App_Log\"/>      <!--文件路径-->      <param name="AppendToFile" value="true"/>      <param name="MaxSizeRollBackups" value="100"/>      <param name="MaxFileSize" value="10240"/>      <param name="StaticLogFileName" value="false"/>      <param name="DatePattern" value="\\yyyy\\MM\\yyyyMMdd-HH'.txt'"/>      <param name="RollingStyle" value="Date"/>      <layout type="log4net.Layout.PatternLayout">        <param name="ConversionPattern" value="%n异常时间:%d [%t] %n异常级别:%-5p %n异 常 类:%c [%x] %n%m %n "/>      </layout>    </appender>    <!--信息日志配置-->    <appender name="InfoAppender" type="log4net.Appender.RollingFileAppender">      <param name="File" value="App_Log\"/>      <!--文件路径-->      <param name="AppendToFile" value="true"/>      <param name="MaxFileSize" value="10240"/>      <param name="MaxSizeRollBackups" value="100"/>      <param name="StaticLogFileName" value="false"/>      <param name="DatePattern" value="\\yyyy\\MM\\yyyyMMdd-HH'.txt'"/>      <param name="RollingStyle" value="Date"/>      <layout type="log4net.Layout.PatternLayout">        <param name="ConversionPattern" value="%n日志时间:%d [%t] %n日志级别:%-5p %n日 志 类:%c [%x] %n%m %n"/>      </layout>    </appender>    <!--控制台-->    <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">      <layout type="log4net.Layout.PatternLayout">        <conversionPattern value="%5level [%thread] (%file:%line) - %message%newline"/>      </layout>    </appender>    <!--log4net.LogManager.GetLogger("logerror")用这个来选择这种类型-->    <logger name="logerror">      <level value="ERROR"/>      <appender-ref ref="ErrorAppender"/>    </logger>    <!--log4net.LogManager.GetLogger("loginfo")用这个来选择这种类型-->    <logger name="loginfo">      <level value="INFO"/>      <appender-ref ref="InfoAppender"/>    </logger>    <root>      <level value="INFO"/>      <appender-ref ref="InfoAppender"/>      <appender-ref ref="ConsoleAppender"/>    </root>  </log4net>  <system.web>    <compilation debug="true"/>  </system.web></configuration>

3:在增加一个类来具体控制:

using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.IO;namespace testaAutoFac.Exentons{    public class LogHelper    {        private LogHelper()        {        }        public static readonly log4net.ILog loginfo = log4net.LogManager.GetLogger("loginfo");   //选择<logger name="loginfo">的配置         public static readonly log4net.ILog logerror = log4net.LogManager.GetLogger("logerror");   //选择<logger name="logerror">的配置         /// <summary>        /// 默认配置。按配置文件        /// </summary>        public static void SetConfig()        {            log4net.Config.XmlConfigurator.Configure();        }        /// <summary>        /// 手动设置,作用未知        /// </summary>        /// <param name="configFile"></param>        public static void SetConfig(FileInfo configFile)        {            log4net.Config.XmlConfigurator.Configure(configFile);        }        /// <summary>        /// 写信息。        /// </summary>        /// <param name="info"></param>        public static void WriteLog(string info)        {            if (loginfo.IsInfoEnabled)            {                loginfo.Info(info);            }        }        /// <summary>        /// 写日志。出错时会写入        /// </summary>        /// <param name="info"></param>        /// <param name="se"></param>        public static void WriteLog(string info, Exception se)        {            if (logerror.IsErrorEnabled)            {                logerror.Error(Application_Start, se);            }        }    }}

数据初始化:

  log4net.Config.XmlConfigurator.Configure(new FileInfo(HttpContext.Current.Server.MapPath("~/log4net.config")));//放在gloax.cshx app_start  public void Application_Error(Object sender, EventArgs e)         {             Exception objExp = HttpContext.Current.Server.GetLastError();             Exentons.LogHelper.WriteLog("\r\n客户机IP:" + Request.UserHostAddress               + "\r\n错误地址:" + Request.Url              + "\r\n异常信息:" + Server.GetLastError().Message, objExp);         }
原创粉丝点击