Log4Net日志组件使用
概要:LogNet是一套开源的程序日志记录系统,经过配置后可以自动抓取程序中的错误、异常信息,并写入磁盘,也可以在异常发生时执行其他指定的操作
新建一个类库:Logger,封装一个LogHelper.cs
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace myOracle.Logger{ using log4net; public class LogHelper { static LogHelper() { //在第一次使用此类的时候加载配置文件 SetConfig(); } public static readonly log4net.ILog logError = log4net.LogManager.GetLogger("logerror"); public static readonly log4net.ILog logInfo = log4net.LogManager.GetLogger("logInfo"); ////// 默认配置。按配置文件 /// public static void SetConfig() { log4net.Config.XmlConfigurator.Configure(); } ////// 写信息。 /// /// public static void WriteInfoLog(string info) { if (logInfo.IsInfoEnabled) { logInfo.Info(info); } } ////// 写异常。 /// /// public static void WriteErrorLog(string errLog) { if (logError.IsErrorEnabled) { logError.Error(errLog); } } ////// 写警告。 /// /// public static void WriteWarnLog(string warnLog) { if (logError.IsWarnEnabled) { logError.Warn(warnLog); } } ////// 写日志。出错时会写入 /// /// /// public static void WriteErrorLog(string info, Exception se) { if (logError.IsErrorEnabled) { logError.Error(info, se); } } } }
在我们的UI层中的webconfig配置文件中进行配置:
在我们的全局配置文件中进行一个简单的测试:
using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.Security;using System.Web.SessionState;namespace myOracle.UI{ using myOracle.Logger; public class Global : System.Web.HttpApplication { protected void Application_Start(object sender, EventArgs e) { //若不想把lognet配置文件写在web.config中,也可以另外手动指定。 //XmlConfigurator.Configure(new FileInfo(HttpContext.Current.Server.MapPath("~/App_Data/log4net.config"))); LogHelper.WriteInfoLog("测试信息日志"); } protected void Session_Start(object sender, EventArgs e) { } protected void Application_BeginRequest(object sender, EventArgs e) { } protected void Application_AuthenticateRequest(object sender, EventArgs e) { } protected void Application_Error(object sender, EventArgs e) { Exception objExp = HttpContext.Current.Server.GetLastError(); LogHelper.WriteErrorLog("\r\n客户机IP:" + Request.UserHostAddress + "\r\n错误地址:" + Request.Url + "\r\n异常信息:" + Server.GetLastError().Message, objExp); } protected void Session_End(object sender, EventArgs e) { } protected void Application_End(object sender, EventArgs e) { } }}
本文仅用于学习!
END!