asp.net中log4net使用方法
2015-12-25 14:49
543 查看
刚完成的这个项目需要记录用户操作日志,后来领导就让我在用户操作点上都用log4记录下。
首先把dll,config引入到项目中,然后在AssemblyInfo配置用到的config
[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", ConfigFileExtension = "config", Watch = true)]
然后就写一些操作log的类,这个类大牛也给提供了
当然,要在全局环境下记录错误等操作信息的话,你还需要一个Global.asax
加了这个,按理说应该是会按照你想的那样记录你的普通日志和错误日志了,但是你会发现没效果,因为 loginfo.IsInfoEnabled=false 如果一直为false的话,就不会进入loghelp的write方法,所以要在Global.asax中的Application_Start方法中加入以下代码:
然后在程序中应用就是
LogHelper.WriteLog(""+userid+"进入了我的主页页面并且把关注的人绑定到了页面上");
一个log4net就会帮你记录日志了。
首先把dll,config引入到项目中,然后在AssemblyInfo配置用到的config
[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", ConfigFileExtension = "config", Watch = true)]
然后就写一些操作log的类,这个类大牛也给提供了
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace PRankBLL { public class LogHelper { public static readonly log4net.ILog loginfo = log4net.LogManager.GetLogger("loginfo"); public static readonly log4net.ILog logerror = log4net.LogManager.GetLogger("logerror"); public static void WriteLog(string info) { if (loginfo.IsInfoEnabled) { loginfo.Info(info); } } /// <summary> /// 错误记录 /// </summary> /// <param name="info">附加信息</param> /// <param name="ex">错误</param> public static void ErrorLog(string info, Exception ex) { if (!string.IsNullOrEmpty(info) && ex == null) { logerror.ErrorFormat("【附加信息】 : {0}<br>", new object[] { info }); } else if (!string.IsNullOrEmpty(info) && ex != null) { string errorMsg = BeautyErrorMsg(ex); logerror.ErrorFormat("【附加信息】 : {0}<br>{1}", new object[] { info, errorMsg }); } else if (string.IsNullOrEmpty(info) && ex != null) { string errorMsg = BeautyErrorMsg(ex); logerror.Error(errorMsg); } } /// <summary> /// 美化错误信息 /// </summary> /// <param name="ex">异常</param> /// <returns>错误信息</returns> private static string BeautyErrorMsg(Exception ex) { string errorMsg = string.Format("【异常类型】:{0} <br>【异常信息】:{1} <br>【堆栈调用】:{2}", new object[] { ex.GetType().Name, ex.Message, ex.StackTrace }); errorMsg = errorMsg.Replace("\r\n", "<br>"); errorMsg = errorMsg.Replace("位置", "<strong style=\"color:red\">位置</strong>"); return errorMsg; } } }
当然,要在全局环境下记录错误等操作信息的话,你还需要一个Global.asax
protected void Application_Error(object sender, EventArgs e) { // 在出现未处理的错误时运行的代码 Exception objExp = HttpContext.Current.Server.GetLastError(); LogHelper.ErrorLog("<br/><strong>客户机IP</strong>:" + Request.UserHostAddress + "<br /><strong>错误地址</strong>:" + Request.Url, objExp); }//GetIP()
加了这个,按理说应该是会按照你想的那样记录你的普通日志和错误日志了,但是你会发现没效果,因为 loginfo.IsInfoEnabled=false 如果一直为false的话,就不会进入loghelp的write方法,所以要在Global.asax中的Application_Start方法中加入以下代码:
protected void Application_Start(object sender, EventArgs e) { log4net.Config.XmlConfigurator.Configure(); }
然后在程序中应用就是
LogHelper.WriteLog(""+userid+"进入了我的主页页面并且把关注的人绑定到了页面上");
一个log4net就会帮你记录日志了。
相关文章推荐
- 树莓派2上手 —— Raspbian的一些基本配置问题
- MVC_DB
- ASP.NET中Repeater控件实现分页功能
- 使用自定义annotation接口进行aspectj动态缓存[要对各个接口进行key-value缓存]
- 基于@Aspect的AOP配置
- casperjs#3#截图问题
- ASP.NET 里的 JSON操作
- 解读ASP.NET 5 & MVC6系列(16):自定义View视图文件查找逻辑
- 解读ASP.NET 5 & MVC6系列(14):View Component
- Asp.net学习笔记
- Asp.net学习笔记
- asp.net中web.config配置节点大全详解
- asp.net中web.config配置节点大全详解
- aspx 端口转发,代码提取自 aspxspy
- 不用asp.net MVC,用WebForm照样可以实现MVC
- 不用asp.net MVC,用WebForm照样可以实现MVC(请看最后一句话)
- asp.net 设置分页
- 将GridView中的数据导出到Excel / Word中
- 解决 aspx 页面 TextBox 不支持 type="number"
- asp.net使用unescape读取js escape编码过的字符串