C# Log4.Net日志组件的应用系列(二)
引言
Log4Net应该可以说是.NET中最流行的开源日志组件了。在各种项目框架中可以说是必不可少的组成部分。个人认为Log4Net有下面几个优点:
1. 使用灵活,它可以将日志分不同的等级,以不同的格式,输出到不同的媒介;
2. 配置简单
下面我将用两个系列的教程讲解Log4.Net日志组件在.Net项目中的实际应用,希望能对爱好框架设计的朋友有所帮助。
正文
我们接着系列(一)开始讲
上一篇我们是直接把Log4net的配置放在App.config中,现在我们把Log4net的配置单独出来,新建一个log4net.config文件,
这样做的好处是:使App.config更加清晰明了;方便项目迁移。
log4net.config配置文件的内容如下:
- <log4net>
- <!-- 错误日志类-->
- <logger name="logerror">
- <level value="ALL" />
- <appender-ref ref="ErrorAppender" />
- </logger>
- <!-- 信息日志类 -->
- <logger name="loginfo">
- <level value="ALL" />
- <appender-ref ref="InfoAppender" />
- </logger>
- <!-- 错误日志附加介质-->
- <appender name="ErrorAppender" type="log4net.Appender.RollingFileAppender">
- <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".htm"" />
- <param name="RollingStyle" value="Date" />
- <!--布局-->
- <layout type="log4net.Layout.PatternLayout">
- <param name="ConversionPattern" value="<HR COLOR=red>%n异常时间:%d [%t] <BR>%n异常级别:%-5p <BR>%n异 常 类:%c [%x] <BR>%n%m <BR>%n <HR Size=1>" />
- </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".htm"" />
- <param name="RollingStyle" value="Date" />
- <!-- 信息日志布局-->
- <layout type="log4net.Layout.PatternLayout">
- <param name="ConversionPattern" value="<HR COLOR=blue>%n日志时间:%d [%t] <BR>%n日志级别:%-5p <BR>%n日 志 类:%c [%x] <BR>%n%m <BR>%n <HR Size=1>" />
- </layout>
- </appender>
- </log4net>
修改AssemblyInfo.cs文件
[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", ConfigFileExtension = "config", Watch = true)]
接下来封装一个LogHelper类,代码如下:
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace Log4Net.common
- {
- 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);
- }
- }
- public static void WriteLog(string info, Exception se)
- {
- if (logerror.IsErrorEnabled)
- {
- logerror.Error(info, se);
- }
- }
- }
- }
LogHelper类
调用LogHelper,写入不同类型的日志
运行结果
PS:欢迎扫描下方二维码或点击链接,加入QQ群
C# Log4.Net日志组件的应用系列(二)的更多相关文章
- C# Log4.Net日志组件的应用系列(一)
引言 Log4Net应该可以说是.NET中最流行的开源日志组件了.在各种项目框架中可以说是必不可少的组成部分.个人认为Log4Net有下面几个优点: 1. 使用灵活,它可以将日志分不同的等级,以不同的 ...
- DocX开源WORD操作组件的学习系列二
DocX学习系列 DocX开源WORD操作组件的学习系列一 : http://www.cnblogs.com/zhaojiedi1992/p/zhaojiedi_sharp_001_docx1.htm ...
- DocX开源WORD操作组件的学习系列四
DocX学习系列 DocX开源WORD操作组件的学习系列一 : http://www.cnblogs.com/zhaojiedi1992/p/zhaojiedi_sharp_001_docx1.htm ...
- DocX开源WORD操作组件的学习系列三
DocX学习系列 DocX开源WORD操作组件的学习系列一 : http://www.cnblogs.com/zhaojiedi1992/p/zhaojiedi_sharp_001_docx1.htm ...
- DocX开源WORD操作组件的学习系列一
DocX学习系列 DocX开源WORD操作组件的学习系列一 : http://www.cnblogs.com/zhaojiedi1992/p/zhaojiedi_sharp_001_docx1.htm ...
- C#组件系列———又一款日志组件:Elmah的学习和分享
前言:好久没动笔了,都有点生疏,12月都要接近尾声,可是这月连一篇的产出都没有,不能坏了“规矩”,今天还是来写一篇.最近个把月确实很忙,不过每天早上还是会抽空来园子里逛逛.一如既往,园子里每年这个时候 ...
- C#组件系列——又一款日志组件:Elmah的学习和分享
前言:好久没动笔了,都有点生疏,12月都要接近尾声,可是这月连一篇的产出都没有,不能坏了“规矩”,今天还是来写一篇.最近个把月确实很忙,不过每天早上还是会抽空来园子里逛逛.一如既往,园子里每年这个时候 ...
- 快速入门系列--Log4net日志组件
Log4net是阿帕奇基金会的非常流行的开源日志组件,是log4j的.NET移植版本,至今已经有11年的历史,使用方便并且非常稳定,此外很重要的一点是其和很多开源组件能很好的组合在一起工作,例如NHi ...
- 性能秒杀log4net的NLogger日志组件(附测试代码与NLogger源码)
NLogger特性: 一:不依赖于第三方插件和支持.net2.0 二:支持多线程高并发 三:读写双缓冲对列 四:自定义日志缓冲大小 五:支持即时触发刷盘机制 六:先按日期再按文件大小滚动Rolling ...
随机推荐
- Page directive: illegal to have multiple occurrences of contentType with different values
org.apache.jasper.JasperException: /commons/meta.jsp(1,1) PWC5988: Page directive: illegal to have m ...
- Ubuntu下配置eclipse环境
一.安装JDK,配置Java环境变量 1.下载JDK,Java SE 8的官方网址是http://www.oracle.com/technetwork/java/javase/downloads/jd ...
- python grpc
pip install grpcio pip install grpcio-tools python -m grpc_tools.protoc -I. --python_out=. --grpc_py ...
- Simple Cubemap Reflection
[Simple Cubemap Reflection] Cubemap加在MainTex上,所以Property需要按如下定义: 注意_Cubemap的类型是CUBE. 使用Cubemap,需要计算反 ...
- Python_12-线程编程
1.1 Python中的线程使用1.1.1 函数式1.2 创建threading.Thread的子类来包装一个线程对象1.2.1 threading.Thread类的使用1.3 线程 ...
- 解决:EXCEL复制粘贴,精度丢失
公司一部分数据是存在elasticsearch里面的,但里面的ID设计得特别长,我是打算把ID号考出来,用jmeter批量 删除的,但复制粘贴到excel里,ID就会精度丢失. 后来找到一个办法,解决 ...
- Spring Data JPA动态查询(多条件and)
entity: @Entity @Table(name = "data_illustration") public class Test { @Id @GenericGenerat ...
- 接口自动化 Windows + HttpRunner 初探(一)
运行环境 HttpRunner 是一个基于 Python 开发的测试框架,可以运行在 macOS.Linux.Windows 系统平台上. HttpRunner 的开发环境为 macOS + Pyth ...
- jquery入门 修改网页背景颜色
我们在浏览一些网站,尤其是一些小说网站的时候,都会有修改页面背景颜色的地方,这个功能使用jquery很容易实现. 效果图: show you code: <!doctype html> & ...
- 53-C++ CH08 01
http://lx.lanqiao.cn/problem.page?gpid=T407 算法训练 C++ CH08 01 时间限制:1.0s 内存限制:256.0MB 问题描述 已 ...