Log4Net 配置和使用

来源:互联网 发布:access导入sql文件 编辑:程序博客网 时间:2024/04/28 08:13
LOG操作类 using System; using System.IO; /**//// /// LogHelper的摘要说明。 /// public class LogHelper { private SystemLog() { } public static readonly log4net.ILog loginfo = log4net.LogManager.GetLogger("loginfo"); //选择的配置 public static readonly log4net.ILog logerror = log4net.LogManager.GetLogger("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.aspx1.调用步骤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)]