Log4net的优点
log4net是.Net下一个非常优秀的开源日志记录组件。log4net记录日志的功能非常强大。它可以将日志分不同的等级,以不同的格式,输出到不同的媒介。程序运行过程中就能生成并输出日志信息而无需人工干预,可供开发人员尽快找到应用程序中的Bug。另外,日志信息可以输出到不同的地方。
Log4net的结构
log4net 有四种主要的组件,分别是Logger(记录器), Repository(库), Appender(附着器)以及Layout(布局)
重点---网上教程项目中添加log4日志流程如下
1.项目中都会有一个工具类库,然后添加对log4net.dll的引用,再该类库下封装一个Log4Help.cs帮助类
2.在MVC,API项目中再次添加对log4net.dll的引用,在根目录的Global.asax.cs中的Application_Start方法中添加:
log4net.Config.XmlConfigurator.Configure();
3.添加Log4Net.config配置文件
讲解错误请多理解:
第二部操作是可以忽略掉的,项目一直都是提倡封装解耦,既然已经将log4封装到帮助类库中,是为了其它BLL层和DAL层能够使用,但是MVC和API层又再一次重复引用log4类库,作用也只是为了读取配置Log4Net.config配置文件,那么完全可以把配置文件读取写入到第一步中
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
[assembly: XmlConfigurator(ConfigFile = "Config/Log4Net.config" , Watch = true )] //重点是这句话,读取MVC或者APILog4Net.config配置文件
namespace JWT.Common
{
public class Log4Help
{
private static readonly ILog loginfo = LogManager.GetLogger( "loginfo" );
private static readonly ILog logerror = LogManager.GetLogger( "logerror" );
/// <summary>
/// 打印日志信息
/// </summary>
/// <param name="info"></param>
public static void Info( string info)
{
loginfo.Info(info);
}
/// <summary>
/// 错误日志信息
/// </summary>
/// <param name="info"></param>
/// <param name="ex"></param>
public static void Error( string info, Exception ex)
{
logerror.Error(info, ex);
}
}
}
|
Log4Net.config配置文件,我是放在MVC这个文件目录下
如果去掉Config文件夹目录,直接将Log4Net.config放在项目根目录,读取路径配置如下
1
|
[assembly: XmlConfigurator(ConfigFile = "Log4Net.config" , Watch = true )]
|
个人都是将数据库链接字符串database.config和在线配置appSettings单独用两个文件拆分维护,全放在web.config,参数配置和链接字符串太多,容易眼花也不太好找
Log4net配置
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
|
<? xml version = "1.0" encoding = "utf-8" ?>
< configuration >
< configSections >
< section name = "log4net" type = "log4net.Config.Log4NetConfigurationSectionHandler,log4net" />
</ configSections >
< log4net >
//logerror这个名字是在帮助类中使用的
< logger name = "logerror" >
< level value = "ALL" />
< appender-ref ref = "ErrorAppender" /> //ErrorAppender如下1.1
</ logger >
< logger name = "loginfo" >
< level value = "ALL" />
< appender-ref ref = "InfoAppender" />
</ logger >
//对应1.1名字必须一样
< appender name = "ErrorAppender" type = "log4net.Appender.RollingFileAppender" >
//File用于保存路径
< param name = "File" value = "Log\\LogError\\" />
< param name = "AppendToFile" value = "true" />
< param name = "MaxSizeRollBackups" value = "100" />
< param name = "MaxFileSize" value = "10240" />
< param name = "StaticLogFileName" value = "false" />
< param name = "DatePattern" value = "yyyyMMdd'.txt'" />
< param name = "RollingStyle" value = "Date" />
< layout type = "log4net.Layout.PatternLayout" >
< param name = "ConversionPattern" value = "%d [%t] [%-5level] : %message %newline" />
</ layout >
</ appender >
< appender name = "InfoAppender" type = "log4net.Appender.RollingFileAppender" >
< param name = "File" value = "Log\\LogInfo\\" />
< param name = "AppendToFile" value = "true" />
< param name = "MaxFileSize" value = "10240" />
< param name = "MaxSizeRollBackups" value = "100" />
< param name = "StaticLogFileName" value = "false" />
< param name = "DatePattern" value = "yyyyMMdd'.txt'" />
< param name = "RollingStyle" value = "Date" />
< layout type = "log4net.Layout.PatternLayout" >
< param name = "ConversionPattern" value = "%d [%t] [%-5level] : %message %newline" />
</ layout >
</ appender >
</ log4net >
</ configuration >
|
1
2
3
4
5
6
7
8
9
10
|
public class HomeController : Controller
{
public ActionResult Index()
{
Log4Help.Info( "1111" );
Log4Help.Error( "12345" , null );
return View();
}
}
|
至此,所有准备工作以及配置工作全部完成,运行应用程序,然后打开项目资源管理文件,就能看见log文件夹
源码下载地址:https://github.com/yaols/JWT.MvcDemo
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。
原文链接:http://www.cnblogs.com/xiaobai123/p/9257278.html