C# Log4Net简单使用方法
log4net库是Apache log4j框架在Microsoft .NET平台的实现,是一个帮助程序员将日志信息输出到各种目标(控制台、文件、数据库等)的工具。
使用log4net,一个很明显的好处是可以提供多种等级的记录信息,通过配置可以在开发的不同阶段处理不同的记录信息,比.NET自带的Debug/Trace两个级别要丰富的多。
一.配置文件
(1)麻烦自行百度log4net的dll文件,然后添加引用。
如上,第一个就是Log4net。
(2)在assemblyInfo.cs里添加下面这句:
[assembly: log4net.Config.DOMConfigurator(Watch = true)]
在app.config里添加配置信息,如下(注意格式,startup放最后):
<configuration><configSections><section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net-net-1.0"/></configSections><log4net><logger name="logerror"><level value="Error" /><appender-ref ref="ErrorAppender" /></logger><logger name="loginfo"><level value="INFO" /><appender-ref ref="InfoAppender" /></logger><logger name="logdebug"><level value="DEBUG" /><appender-ref ref="DebugAppender" /></logger><appender name="DebugAppender" type="log4net.Appender.RollingFileAppender"><param name="File" value="Log\\LogDebug\\" /><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="<调试>%m 时间:%d [%t] ;%n" /></layout></appender><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".txt"" /><param name="RollingStyle" value="Date" /><layout type="log4net.Layout.PatternLayout"><param name="ConversionPattern" value="<异常>%m 时间:%d [%t] ;%n" /></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="%n<正常><时间:>%d %m[%t];%n" /></layout></appender></log4net><startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" /></startup></configuration>
configurations写的是log4net版本信息。
log4net内分别写了Error DeBug Info三个级别的配置信息,log4net内含7个级别的log信息
(1)OFF (2)FATAL (3)ERROR (4)WARN (5)INFO (6)DEBUG (7)ALL (级别是从高到低)
配置信息的解释:
<appender name="DebugAppender" type="log4net.Appender.RollingFileAppender">//日志的路径<param name="File" value="Log\\LogDebug\\" />//是否在文件中追加文件<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"" />//按照文件的Data进行变换日志文件<param name="RollingStyle" value="Date" />//log输入内容(可以根据需求自行设置)<layout type="log4net.Layout.PatternLayout"><param name="ConversionPattern" value="<调试>%m 时间:%d [%t] ;%n" /></layout></appender>
二.实例化log4net类
public class Log4netManager{public static readonly log4net.ILog loginfo = log4net.LogManager.GetLogger("loginfo");public static readonly log4net.ILog logerror = log4net.LogManager.GetLogger("logerror");public static readonly log4net.ILog logdebug = log4net.LogManager.GetLogger("logdebug");/// <summary>/// 输出正常运行信息/// </summary>/// <param name="info"></param>public static void WriteInfo(string info){if (loginfo.IsInfoEnabled){loginfo.Info(info);}}/// <summary>/// 输出异常运行信息/// </summary>/// <param name="info"></param>public static void WriteError(string info){if (logerror.IsErrorEnabled){logerror.Error(info);}}/// <summary>/// 输出调试信息/// </summary>/// <param name="info"></param>public static void WriteDebug(string info){if (logdebug.IsDebugEnabled){logerror.Debug(info);}}}
三.输出
public partial class MainWindow : Window{public MainWindow(){InitializeComponent();Log4netManager.WriteError("error");Log4netManager.WriteDebug("debug");Log4netManager.WriteInfo("info");}}
四.打开文件所在位置
即可,见到该输出文件
转载于:https://www.cnblogs.com/Khan-Sadas/p/4961856.html
C# Log4Net简单使用方法相关推荐
- JAVA用最简单的方法来构建一个高可用的服务端,提升系统可用性
一.什么是提升系统的高可用性 JAVA服务端,顾名思义就是23体验网为用户提供服务的.停工时间,就是不能向用户提供服务的时间.高可用,就是系统具有高度可用性,尽量减少停工时间.如何用最简单的方法来搭建 ...
- 【CI3.1】CI框架简单使用方法
CI框架简单使用方法 1.回忆MVC1.1.M:模型,提供数据,保存数据1.2.V:视图,只负责显示,表单form1.3.C:控制器,协调模型和视图1.4.action:动作,是控制器中的方法,用于被 ...
- smarty mysql demo_PHP Smarty模版简单使用方法
本文实例讲述了PHP Smarty模版简单使用方法.分享给大家供大家参考,具体如下: Index.php: require('../libs/Smarty.class.php'); $smarty = ...
- 通过身份证号提取性别_身份证号提取生日、年龄、性别、籍贯,最简单的方法!...
上一期,Amy跟大家分享了如何从身份证号中提取出生日期.今天我们继续来讲如何提取年龄.性别.籍贯. 身份证号提取年龄 ✦思路:在E2单元格输入公式"=DATEDIF(D2,TODAY(),& ...
- 创建三维建筑可视化和虚拟现实的最快和最简单的方法
创建三维建筑可视化和虚拟现实的最快和最简单的方法 时长3小时12分 1280X720 Mkv 语言:英语+中文字幕(根据原英文字幕机译更准确)+原英文字幕 大小解压后:2.86G 共28小节课程 标题 ...
- scala akka_如何对Scala和Akka HTTP应用程序进行Docker化-简单的方法
scala akka by Miguel Lopez 由Miguel Lopez 如何对Scala和Akka HTTP应用程序进行Docker化-简单的方法 (How to Dockerise a S ...
- 上如何刻字_如何用简单的方法在零件表面刻字:这里就有你想要的答案
上一篇文章我们用solidworks软件的焊件模块来绘制了一个最简单的机架.此过程中用到了焊件的以下功能:结构构件.角撑板.只要以后画机架肯定要用到结构构件的,大家应该注意学习好这个最常用的功能,在这 ...
- 不用恐惧AI的高速发展,论击败阿法狗(零)最简单的方法
作者:刘锋 计算机博士,互联网进化论作者 10月19日凌晨,在国际学术期刊<自然>(Nature)上发表的一篇研究论文中,谷歌下属公司Deepmind报告新版程序AlphaGo Zero: ...
- PHP5.2.3+apache2.2.4的最简单安装方法
最近为了安装PHP+apache这个PHP开发环境,到处查找资料,网上众说纷纭,我试了好多版本都没有成功,原因是网上说的都是过时的版本的配置方法(如PHP4+apache2.0),随着PHP和apac ...
- 教你一招超级简单的方法快速搞定grub.conf文件的丢失及损坏
教你一招超级简单的方法快速搞定grub.conf文件的丢失及损坏 实验环境: GRUB是大多数Linux系统默认使用的引导程序,当"/boot/grub/grub.conf"配置文 ...
最新文章
- wxWidgets:wxFileDirPickerEvent类用法
- 机器学习算法之集成学习
- 【Java】关于Java中的各种流
- 不需要登陆的灵感笔记私人版正式上线,迭代优化中。
- 获取到某一方法的调用者的类名、方法名、命名空间
- 线程池ThreadPoolExecutor的使用方法
- CentOS启动时报错修复
- handsontable的单元格操作方法
- struts2和hibernate的简单新闻发布系统_点赞!北斗卫星导航系统28nm工艺芯片已量产,全球范围定位精度优于10米...
- 百度关闭快照删除更新入口
- CoreJava(第二章)Java基础
- mt6799芯片资料mt6799参考设计资料
- jquery easyui 全部图标
- linux系统(Centos7)安装VScode笔记
- 行情平淡期做市商如何刷量 说一个网格策略魔改高频刷单策略的思路
- 转载精品:工作8年的普通专科生程序员的一些感悟
- LinuxC TCP实现简易聊天室
- 网卡MAC地址相关信息大全(整理)(上)
- SAP PO中物料描述的语言设置
- python的abs(3+4j)_表达式abs(3+4j) 的值为
热门文章
- python中filter是什么意思_求能人解答python filter()和filter_by()区别是什么
- SpringCloud Alibaba - Nacos 作为配置中心 读取Yaml配置信息
- SQL Server之旅:(二)Could not load the DLL xpstar90.dll
- 能源行业将被重构,大数据有哪些“挖”法?
- 2个比较经典的PHP加密解密函数分享
- 【iptables】编写iptables防火墙规则-2
- avalon2学习教程14动画使用
- OGRE: OgreOverlaySystem.h: No such file or directory
- PowerShell_零基础自学课程_9_高级主题:静态类和类的操作
- asp.net有效使用缓存(转)