在项目当中经常会遇到各种各样的问题,如何可以尽快找到问题,那么就只能靠日志了,所以一个系统的日志是否完备合理就尤为重要。
在日志管理插件中log4net相当流行,下面就简单说明一下使用方法。
log4net的官方网址为
如果英文较好,可以直接看官方网站的教程,尤其是config部分的教程
下面示例教程的源代码下载网址为:
1、引入log4net组件
在Visual Studio中选中所需添加log4net的项目,点击鼠标右键,选择【管理NuGet程序包】
输入关键字log4,查找对应程序包,并点击安装
完成完成之后,你可以在引用中看到已经成功引用log4net
2、配置log4net参数。由于配置文件内容比较多,详细内容可以下载示例工程代码,这里只是对有关错误日志信息的定义进行说明,其他类似
3、完成配置之后就可以进行在程序中调用了,为了方便调用,我定义了一个日志记录类LogHelper,具体代码如下:
using System;using log4net;namespace WebApplication1.ActionHelper{ public class LogHelper { private ILog logger; public LogHelper(ILog log) { this.logger = log; } public void Info(object message) { this.logger.Info(message); } public void Info(object message, Exception e) { this.logger.Info(message, e); } public void Debug(object message) { this.logger.Debug(message); } public void Debug(object message, Exception e) { this.logger.Debug(message, e); } public void Warning(object message) { this.logger.Warn(message); } public void Warning(object message, Exception e) { this.logger.Warn(message, e); } public void Error(object message) { this.logger.Error(message); } public void Error(object message, Exception e) { this.logger.Error(message, e); } public void Fatal(object message) { this.logger.Fatal(message); } public void Fatal(object message, Exception e) { this.logger.Fatal(message, e); } } public class LogFactory { static LogFactory() { } public static LogHelper GetLogger(Type type) { return new LogHelper(LogManager.GetLogger(type)); } public static LogHelper GetLogger(string str) { return new LogHelper(LogManager.GetLogger(str)); } }}
然后再具体页面中可以按照如下方式进行调用
using System;using System.Collections.Generic;using System.Linq;using System.Reflection;using System.Web;using System.Web.UI;using System.Web.UI.WebControls;namespace WebApplication1{ public partial class Default : System.Web.UI.Page { private ActionHelper.LogHelper log; protected void Page_Load(object sender, EventArgs e) { pageLoad(); } private void pageLoad() { log = ActionHelper.LogFactory.GetLogger(MethodBase.GetCurrentMethod().DeclaringType.FullName + ":" + MethodBase.GetCurrentMethod().Name); log.Info("起始页面载入222"); log.Error("起始页面载入"); } }}
4、如为了省事,需要对系统中所有的异常进行捕捉处理,则可以在Global.asax中进行定义
protected void Application_Error(object sender, EventArgs e) { ActionHelper.LogHelper log = ActionHelper.LogFactory.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); log.Error("未处理异常",HttpContext.Current.Server.GetLastError()); }
至此就设置完成了。
全部设置下来其实还是比较简单的,如果实在不明白,可以直接下载: 一看就明白了。