前言:log4net是个比较简单实用的日志记录工具,引用Dll,设置好配置文件,实例化对象,了解一下其中的组件和原理,就可以上手了。
学习原因:像我这种独行的散修不同于你们世家的弟子,有那么多的资源和导师。刚开始的时候我并不在呼和了解日志这个东西,自己的程序也都是直接F11一步步调试。但是当程序发布到服务器的时候的我就发现了,由于程序运行的环境变了,在本地好好的,在服务器就不行了。咱总不能在服务器装个VS 然后一步步调试去啊。
探索历程:
1.在Global中的Application_Error()方法中向一个文本写入日志(问题:并发上锁其他人要等待)。
2.错误存入集合,Application_Error()方法中读取集合,然后存入文本。(问题:不够装逼)
3.错误存入队列,开启一个线程,负责从队列中取出,然后存入文本。(后面博客中有讲解)
4.log4net(简单容易上手,信息可以输出到控制台,文本中)
5.使用Redis与Log4Net完成分布式日志记录(后面博客中有讲解)
简单介绍
Log4net(Log For Net,也有Log For Java)是Apache开源的应用于.Net框架的日志记录工具,其精髓在于蓄千刃之势,动指之间
Logger:日志记录对象
Appender:日志记录目标
Repository :库
Layout:布局
声明一个配置文件对log4net进行配置(可以在web.confg中配置,但是会显得繁琐)
<log4net>
<root>
<level value=" DEBUG" />
<appender-ref ref="LogFileAppender" />
<appender-ref ref="ConsoleAppender" />
</root>
<logger name="testApp.Logging">
<level value="DEBUG"/>
</logger>
<appender name="LogFileAppender" type="log4net.Appender.FileAppender" >
<param name="File" value="c://log-file.txt" />
<param name="AppendToFile" value="true" />
<layout type="log4net.Layout.PatternLayout">
<param name="Header" value="[Header]/r/n"/>
<param name="Footer" value="[Footer]/r/n"/>
<param name="ConversionPattern" value="%d [%t] %-5p %c [%x] - %m%n" />
</layout>
<filter type="log4net.Filter.LevelRangeFilter">
<param name="LevelMin" value="DEBUG" />
<param name="LevelMax" value="WARN" />
</filter>
</appender>
<appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender" >
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%d [%t] %-5p %c [%x] - %m%n" />
</layout>
</appender>
</log4net>
在Properties.cs中指向这个配置文件[assembly:log4net.Config.DOMConfigurator(ConfigFile="config/log4net.config",Watch=true)]
配置中的appender就是指定了这个日志的输出方式,c://log.txt运行后C盘也会多一个文件log.txt 文件夹
使用的时候:: private static ILog log = LogManager.GetLogger(typeof(当前类名));
log.Debug(string.Formt("异常:{0}","我主动抛出异常"))
我们会以类(class)的类型(type)为参数来调用GetLogger(),
传递的类(class)的类型(type)可以用typeof(Classname)方法来获得
上面的typeof用于获取类型的 System.Type 对象.获取指定类的类对象。。这样就可以通过类对象获取其他信息。如类是不是抽象类,位于哪个程序集等等
当然,还有很多用法和配置请参考教程视频::
百度网盘:链接: http://pan.baidu.com/s/1c1EyiL6 密码: bjug
参考文档:
http://www.cnblogs.com/Raymond201508/p/4934322.html
http://blog.csdn.net/daichenghua/article/details/4806688
感谢以上的作者。