从网上查的一些方法,自己也使用了,记录下来以后可能还会用到。
MVC5下使用log4net.dll
第一步:在项目中添加对log4net.dll的引用(通过NuGet可以直接安装)
第二步:Global.asax下添加方法
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);
}
第三步:添加配置文件(修改配置文件),我在这里是添加配置文件log4net.config
配置内容网上有很多,直接复制即可使用,路径和日志级别可以自定义修改
当前使用的配置:
第四步:AssemblyInfo.cs 中添加 [assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", Watch = true)]
(一定要添加,配置名要一致)
第五步,代码实现
LogHelper.cs
///
/// LogHelper的摘要说明。
///
public class LogHelper
{
private LogHelper()
{
}
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);
}
}
}
//可以自己自定义更多级别
最后调用, LogHelper.WriteLog(xx)
发布后如果还没有记录,将配置文件log4net.config放在bin文件夹下试试
网上有很多更详细的操作,在这里记录一下自己学习之后怎么调用,第四步配置的地方开始没有一直记录不上日志。