原来也一直用log4net记录日志,但是是在.net2.0 上用的。最近用到新的项目是vs2015开发的,要用log4net,今天将.net 4.0 使用log4net记录错误日志的步骤,分享给大家。
1、首先到http://logging.apache.org/log4net/download_log4net.cgi 下载最新版本的log4net。如果不需要修改log4net的源代码的话,建议下载二进制的就可以了。最新版本是log4net 1.2.15。
IT分享
2、下载好log4net.dll文件后,找到net4.0版本的dll文件。拷贝到项目中根目录下的自定义目录lib文件夹下,然后在项目中添加对该文件的引用。
3、找到项目中Propertites目录下的AssemblyInfo.cs文件,在末尾添加一行调用配置文件的代码如下:
[assembly: log4net.Config.XmlConfigurator(ConfigFile = @"Configlog4net.cfg.xml", Watch = true)]
4、新建配置文件夹Config,并添加一个log4net.cfg.xml文件,配置文件内容如下:
注意:路径别搞错了,看清楚上面的图~
5、建一个公共类,在里面加上这样的代码:
public static readonly log4net.ILog log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
6、调用:
APManage.log.Debug("系统启动");
IT分享
7、记录错误日志:
web项目中添加全局处理文件Global.asax。
protected void Application_Error(object sender, EventArgs e)
{
ErrorDeal();
}
private void ErrorDeal()
{
// 在出现未处理的错误时运行的代码
Exception ex = Server.GetLastError().GetBaseException();
StringBuilder str = new StringBuilder();
str.Append("rn" + DateTime.Now.ToString("yyyy.MM.dd HH:mm:ss"));
str.Append("rn.客户信息:");
string ip = "";
if (Request.ServerVariables.Get("HTTP_X_FORWARDED_FOR") != null)
{
ip = Request.ServerVariables.Get("HTTP_X_FORWARDED_FOR").ToString().Trim();
}
else
{
ip = Request.ServerVariables.Get("Remote_Addr").ToString().Trim();
}
str.Append("rntIp:" + ip);
str.Append("rnt浏览器:" + Request.Browser.Browser.ToString());
str.Append("rnt浏览器版本:" + Request.Browser.MajorVersion.ToString());
str.Append("rnt操作系统:" + Request.Browser.Platform.ToString());
str.Append("rn.错误信息:");
str.Append("rnt页面:" + Request.Url.ToString());
str.Append("rnt错误信息:" + ex.Message);
str.Append("rnt错误源:" + ex.Source);
str.Append("rnt异常方法:" + ex.TargetSite);
str.Append("rnt堆栈信息:" + ex.StackTrace);
str.Append("rn--------------------------------------------------------------------------------------------------");
APManage.log.Error(str);
//处理完及时清理异常
Server.ClearError();
}