转:http://www.cnblogs.com/chencidi/archive/2010/01/12/1645291.html

web.config配置如下:

<?xml version="1.0" encoding="utf-8" ?>

<configuration>

<configSections>

  <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />

</configSections>

<log4net>

  <!--错误日志配置-->

  <appender name="ErrorAppender" type="log4net.Appender.RollingFileAppender">

   <param name="File" value="Log\\LogError\\" />  

   <param name="AppendToFile" value="true" />

   <param name="MaxSizeRollBackups" value="100" />

   <param name="MaxFileSize" value="10240" />

   <param name="StaticLogFileName" value="false" />

   <param name="DatePattern" value="yyyyMMdd" />

   <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="Log\\LogInfo\\" />

   <param name="AppendToFile" value="true" />

   <param name="MaxFileSize" value="10240" />

   <param name="MaxSizeRollBackups" value="100" />

   <param name="StaticLogFileName" value="false" />

   <param name="DatePattern" value="yyyyMMdd" />

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

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

</configuration>

LOG操作类

using System;  

using System.IO;     



    /**//// <summary>  

    /// LogHelper的摘要说明。  

    /// </summary>  

    public class LogHelper  

    {  

        private SystemLog()  

        {  

        }  

 

        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">的配置

  

        public static void SetConfig()  

        {  

            log4net.Config.XmlConfigurator.Configure();  

        }  

 

        public static void SetConfig(FileInfo configFile)  

        {  

            log4net.Config.XmlConfigurator.Configure(configFile);   

        }  

 

        public static void WriteLog(string info)  

        {  

            if(loginfo.IsInfoEnabled)  

            {  

                loginfo.Info(info);  

            }  

        }  

 

        public static void WriteLog(string info,Exception se)  

        {  

            if(logerror.IsErrorEnabled)  

            {  

                logerror.Error(info,se);  

            }  

        }  

    }

Global.asax.cs文件配置如下:

protected void Application_Start(Object sender, EventArgs e)  

  {  

            SystemLog.SetConfig();  

  }  

  protected void Application_Error(Object sender, EventArgs e)  

  {  

   Exception objExp = HttpContext.Current.Server.GetLastError();  

   LogHelper.WriteLog("\r\n客户机IP:"+ Request.UserHostAddress +"\r\n错误地址:"+ Request.Url +"\r\n异常信息:"+ Server.GetLastError().Message,objExp);  

  } 

protected void Application_Start(Object sender, EventArgs e)

  {

            SystemLog.SetConfig();

  }

  protected void Application_Error(Object sender, EventArgs e)

  {

   Exception objExp = HttpContext.Current.Server.GetLastError();

   LogHelper.WriteLog("\r\n客户机IP:"+ Request.UserHostAddress +"\r\n错误地址:"+ Request.Url +"\r\n异常信息:"+ Server.GetLastError().Message,objExp);

  }

eg:

   try

   {}

   catch(Exception ex)

   {

       LogHelper.WriteLog("ErrorInfo"ex);

   }

以上本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/javc/archive/2009/03/25/4022677.aspx

1.调用步骤

1.config配置

2.初始化配置 log4net.Config.XmlConfigurator.Configure();

3.调用logger.Info("asdfasd");

2.细节详解

1.Log4net框架定义了一个叫做LogManager的类,用来管理所有的logger对象。它有一个GetLogger()静态方法,用我们提供的名字参数来检索已经存在的Logger对象。如果框架里不存在该Logger对象,它也会为我们创建一个Logger对象。代码如下所示:

log4net.ILog log = log4net.LogManager.GetLogger("logger-name");

通常来说,我们会以类(class)的类型(type)为参数来调用GetLogger(),以便跟踪我们正在进行日志记录的类。传递的类(class)的类型(type)可以用typeof(Classname)方法来获得,或者可以用如下的反射方法来获得:

log4net.ILog log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);

尽管符号长了一些,但是后者可以用于一些场合,比如获取调用方法的类(class)的类型(type)。

例: private void button1_Click(object sender, EventArgs e)

        {

logger.Info("sdfasd");

        }

System.Reflection.MethodBase.GetCurrentMethod().DeclaringType 就为button1_Click这个方法所在的类的类型

2.配置XmlConfigurator

使用代码初始化配置。

log4net.Config.XmlConfigurator.Configure(new FileInfo("test.log4net"));

使用 XmlConfigurator.ConfigureAndWatch() 方法除了初始化配置外,还会监测配置文件的变化,一旦发生修改,将自动刷新配置。

我们还可以使用 XmlConfiguratorAttribute 代替 XmlConfigurator.Config()/ConfigureAndWatch(),ConfiguratorAttribute 用于定义与 Assembly 相关联的配置文件名。

方式1: 关联到 test.log4net,并监测变化。

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

方式2: 关联到 test.exe.log4net (或 test.dll.log4net,文件名前缀为当前程序集名称),并监测变化。

[assembly: log4net.Config.XmlConfigurator(ConfigFileExtension="log4net", Watch=true)]

Log4Net 配置和使用的更多相关文章

  1. Common.Logging log4net Common.Logging.Log4Net 配置

    1.log4net 单独配置 log4net支持多种格式的日志输出,我这里只配置输出到本地的txt文件这种格式. <log4net> <root> <appender-r ...

  2. Log4Net 配置StmpAppender

    目录 Log4Net 配置StmpAppender    1 1.前言    1 2.详细配置    1 1.StmpAppender配置    1 2.Root 配置    2 3.更多选项     ...

  3. C# Log4Net配置

    Log4Net是用来记录日志的,可以将程序运行过程中的信息输出到一些地方(文件.数据库.EventLog等),日志就是程序的黑匣子,可以通过日志查看系统的运行过程,从而发现系统的问题.日志的作用:将运 ...

  4. Log4net配置与使用简要说明

    log4net详细配置:http://logging.apache.org/log4net/本文描述如有错误,以官网的说明为准;p 一:先来看看log4net中的几个概念: 1. log4net继承机 ...

  5. MVC Log4Net 配置

    1.引用log4net.dll 2.在项目根目录下增加log4.config文件 <?xml version="1.0"?> <configuration> ...

  6. ASP.NET MVC学习之Log4Net配置(日志记录)

    Log4Net配置笔记---- 首先,添加对log4net.dll的引用. 在Web.config文件下的Configuration节点下添加Log4Net的配置信息: <!--Log4Net配 ...

  7. C# 日志系统 log4net 配置及使用

    1.引用Dll 版本是:1.2.10.0,下载Dll 2.Web.config文件配置 <?xml version="1.0" encoding="utf-8&qu ...

  8. JWT+Log4net配置与使用

    Log4net的优点        log4net是.Net下一个非常优秀的开源日志记录组件.log4net记录日志的功能非常强大.它可以将日志分不同的等级,以不同的格式,输出到不同的媒介.程序运行过 ...

  9. log Log4NET配置

    Log4Net是用来记录日志的,可以将程序运行过程中的信息输出到一些地方(文件.数据库.EventLog等),日志就是程序的黑匣子,可以通过 日志查看系统的运行过程,从而发现系统的问题.日志的作用:将 ...

  10. NHibernate的调试技巧和Log4Net配置

    1.查看nhibernate写在控制台里的sql语句 在配置文件中有这么个选项,假如把它设置为true,nhibernate会把执行的sql显示在控制台上. <property name=&qu ...

随机推荐

  1. OpenJudge/Poj 1936 All in All

    1.链接地址: http://poj.org/problem?id=1936 http://bailian.openjudge.cn/practice/1936 2.题目: All in All Ti ...

  2. debian 学习记录-2 -账户 -关机

    linux考虑系统安全设定了root账号和user账号 权限较低的user账号下,连关机命令都执行不了…… 用户切换... 用户切换1 命令su(在user账号下,即可开启root账号模式) 用户切换 ...

  3. java感触一则

    看到开源中国上边有那么多关于java的开源项目,从数据库到3D游戏再到IDE工具,甚至有iQQ,形形种种都是一些比较成熟的,工程很大的项目.才意识到Java是如此的强大和流行. 这么多开源的代码我不可 ...

  4. iPad知识点记录

    这两天玩了玩虚拟机安装Mac OS系统.iPad1的越狱以及利用iTunes将iPad2的系统升级到iOS8.1,这里将一些参考资源以及关键点记录一下. 一.虚拟机安装Mac OS 首先你的系统要能够 ...

  5. sae-服务器php运行环境配置

    config.yaml 语法- OPTION: ARG1 ARG2 ... - OPTION: if (CONDICTIONs) ACTION CONDITION可以是以下任意一种: 使用 == 和 ...

  6. windows 7 64bit 下apache php mysql 环境配置

    在64位环境下安装apache,php和配置过程 准备好安装包.(64位版本) Apache 下载地址:http://www.apachelounge.com/download/ Php 下载地址:h ...

  7. 大话F#和C#:是否会重蹈C#失败的覆辙?

    F#.net 出来有些年头儿了,将从 VS 2010 起在 .net framework 平台上以“一等公民”身份粉墨登场的它,将会给计算机科技与软件工业带来哪些悲喜剧呢? F# 将扮演一个什么角色? ...

  8. WINIO64位模拟键鼠操作

    最近玩游戏有点入迷,心急升级经验,于是某天开始"挂尸体",一系列手动操作之后决定写一个外挂,模拟一系列键盘和鼠标操作,没做过游戏winform也用得少,开始以为只要简单调用winA ...

  9. 一个令人困惑的低效SQL

    整理之前的优化案例,觉得下面这个应该是开发很难发现也会很困惑的一个低效SQL. 看下面这个SQL.你看到这个SQL会不会感觉很正常.其实我刚看到也觉得正常得不得了.但是测试后它确实效率很低.selec ...

  10. 开发设计模式(七)工厂模式(Factory Method Pattern)

    工厂模式是我们最常用的模式了,著名的Jive论坛 ,就大量使用了工厂模式,工厂模式在Java程序系统可以说是随处可见. 为什么工厂模式是如此常用?因为工厂模式就相当于创建实例对象的new,我们经常要根 ...