您的位置:首页 > 其它

MVC 初始 Log4net (一)

2016-07-27 16:50 363 查看
以前没有使用过Log4net 插件来记录日志文件,今天研究了一下,算是有点小眉目了,只是简单的使用一下;来写一篇博客自己记录一下,希望大神们多多包涵,小伙伴多多给提些建议,相互学习,我也是初始阶段,有什么不对的地方请指出来谢谢。

我们先了解一下为什么要是使用log4net呢?因为在我们实际开发中,记录日志是非常重要的,它可以使我们快速找到Bug 的地方,异常信息等;这个时候我们需要一个强大的日志系统。

下面的代码示例,是在NET 环境一下进行

备注:下面的实例是在类库这种使用的,所需要的程序直接可以调用类库;详见下面的步骤

第一步:先在Nuget程序包中将log4Net 下载下来

using log4net;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Threading.Tasks;
using System.Web;

namespace JobLibrary1
{
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;
}
}
}


View Code
然好可以在自己的类库中使用了,同时也可以件类库dll引用到其他的项目中,只需要在该项目中下载Log4net,和设置一下配置文件就好了

第三步:引用,并使用



第四步:创建一个配置文件 log4net.config

<log4net>
<!-- 错误日志类-->
<logger name="logerror">
<level value="ALL" />
<appender-ref ref="ErrorAppender" />
</logger>
<!-- 信息日志类 -->
<logger name="loginfo">
<level value="ALL" />
<appender-ref ref="LogFileAppender" />
</logger>

<appender name="LogFileAppender" type="log4net.Appender.RollingFileAppender" >
<file value="_Logs\" />
<appendToFile value="true" />
<rollingStyle value="Date" />
<datePattern value="yyyyMM/dd/HHmm'.txt'" />
<staticLogFileName value="false" />

<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%d [%t] %-5p %c [%x]  - %m%n"  />
</layout>
</appender>

</log4net>


备注:log4net 的配置文件我只是了解一点 只是会用而已,详细的说明请大家参考:http://www.cnblogs.com/kissazi2/p/3389551.html 写的相当不错而且非常的详细;在使用的使用请大家注意了log4net.LogManager.GetLogger(Name),这里面的Name要在配置文件中,有对应的节点值相同才可以正常使用的。

第四步 :将log4net 注册到应用程序中,就OK 了;这样就可以使用了

protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);

// 在应用程序启动时运行的代码
log4net.Config.XmlConfigurator.ConfigureAndWatch(new System.IO.FileInfo(HttpContext.Current.Server.MapPath(@"~/Config/log4net.config")));

}


这样就好了;

对于log4net 的使用有待研究中,学习中。。希望大家多多帮助。。。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: