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&quot;.txt&quot;" /><param name="RollingStyle" value="Date" /><layout type="log4net.Layout.PatternLayout"><param name="ConversionPattern" value="&lt;调试&gt;%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&quot;.txt&quot;" /><param name="RollingStyle" value="Date" /><layout type="log4net.Layout.PatternLayout"><param name="ConversionPattern" value="&lt;异常&gt;%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&quot;.txt&quot;" /><param name="RollingStyle" value="Date" /><layout type="log4net.Layout.PatternLayout"><param name="ConversionPattern" value="%n&lt;正常&gt;&lt;时间:&gt;%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&quot;.txt&quot;" />//按照文件的Data进行变换日志文件<param name="RollingStyle" value="Date" />//log输入内容(可以根据需求自行设置)<layout type="log4net.Layout.PatternLayout"><param name="ConversionPattern" value="&lt;调试&gt;%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简单使用方法相关推荐

  1. JAVA用最简单的方法来构建一个高可用的服务端,提升系统可用性

    一.什么是提升系统的高可用性 JAVA服务端,顾名思义就是23体验网为用户提供服务的.停工时间,就是不能向用户提供服务的时间.高可用,就是系统具有高度可用性,尽量减少停工时间.如何用最简单的方法来搭建 ...

  2. 【CI3.1】CI框架简单使用方法

    CI框架简单使用方法 1.回忆MVC1.1.M:模型,提供数据,保存数据1.2.V:视图,只负责显示,表单form1.3.C:控制器,协调模型和视图1.4.action:动作,是控制器中的方法,用于被 ...

  3. smarty mysql demo_PHP Smarty模版简单使用方法

    本文实例讲述了PHP Smarty模版简单使用方法.分享给大家供大家参考,具体如下: Index.php: require('../libs/Smarty.class.php'); $smarty = ...

  4. 通过身份证号提取性别_身份证号提取生日、年龄、性别、籍贯,最简单的方法!...

    上一期,Amy跟大家分享了如何从身份证号中提取出生日期.今天我们继续来讲如何提取年龄.性别.籍贯. 身份证号提取年龄 ✦思路:在E2单元格输入公式"=DATEDIF(D2,TODAY(),& ...

  5. 创建三维建筑可视化和虚拟现实的最快和最简单的方法

    创建三维建筑可视化和虚拟现实的最快和最简单的方法 时长3小时12分 1280X720 Mkv 语言:英语+中文字幕(根据原英文字幕机译更准确)+原英文字幕 大小解压后:2.86G 共28小节课程 标题 ...

  6. scala akka_如何对Scala和Akka HTTP应用程序进行Docker化-简单的方法

    scala akka by Miguel Lopez 由Miguel Lopez 如何对Scala和Akka HTTP应用程序进行Docker化-简单的方法 (How to Dockerise a S ...

  7. 上如何刻字_如何用简单的方法在零件表面刻字:这里就有你想要的答案

    上一篇文章我们用solidworks软件的焊件模块来绘制了一个最简单的机架.此过程中用到了焊件的以下功能:结构构件.角撑板.只要以后画机架肯定要用到结构构件的,大家应该注意学习好这个最常用的功能,在这 ...

  8. 不用恐惧AI的高速发展,论击败阿法狗(零)最简单的方法

    作者:刘锋 计算机博士,互联网进化论作者 10月19日凌晨,在国际学术期刊<自然>(Nature)上发表的一篇研究论文中,谷歌下属公司Deepmind报告新版程序AlphaGo Zero: ...

  9. PHP5.2.3+apache2.2.4的最简单安装方法

    最近为了安装PHP+apache这个PHP开发环境,到处查找资料,网上众说纷纭,我试了好多版本都没有成功,原因是网上说的都是过时的版本的配置方法(如PHP4+apache2.0),随着PHP和apac ...

  10. 教你一招超级简单的方法快速搞定grub.conf文件的丢失及损坏

    教你一招超级简单的方法快速搞定grub.conf文件的丢失及损坏 实验环境: GRUB是大多数Linux系统默认使用的引导程序,当"/boot/grub/grub.conf"配置文 ...

最新文章

  1. wxWidgets:wxFileDirPickerEvent类用法
  2. 机器学习算法之集成学习
  3. 【Java】关于Java中的各种流
  4. 不需要登陆的灵感笔记私人版正式上线,迭代优化中。
  5. 获取到某一方法的调用者的类名、方法名、命名空间
  6. 线程池ThreadPoolExecutor的使用方法
  7. CentOS启动时报错修复
  8. handsontable的单元格操作方法
  9. struts2和hibernate的简单新闻发布系统_点赞!北斗卫星导航系统28nm工艺芯片已量产,全球范围定位精度优于10米...
  10. 百度关闭快照删除更新入口
  11. CoreJava(第二章)Java基础
  12. mt6799芯片资料mt6799参考设计资料
  13. jquery easyui 全部图标
  14. linux系统(Centos7)安装VScode笔记
  15. 行情平淡期做市商如何刷量 说一个网格策略魔改高频刷单策略的思路
  16. 转载精品:工作8年的普通专科生程序员的一些感悟
  17. LinuxC TCP实现简易聊天室
  18. 网卡MAC地址相关信息大全(整理)(上)
  19. SAP PO中物料描述的语言设置
  20. python的abs(3+4j)_表达式abs(3+4j) 的值为

热门文章

  1. python中filter是什么意思_求能人解答python filter()和filter_by()区别是什么
  2. SpringCloud Alibaba - Nacos 作为配置中心 读取Yaml配置信息
  3. SQL Server之旅:(二)Could not load the DLL xpstar90.dll
  4. 能源行业将被重构,大数据有哪些“挖”法?
  5. 2个比较经典的PHP加密解密函数分享
  6. 【iptables】编写iptables防火墙规则-2
  7. avalon2学习教程14动画使用
  8. OGRE: OgreOverlaySystem.h: No such file or directory
  9. PowerShell_零基础自学课程_9_高级主题:静态类和类的操作
  10. asp.net有效使用缓存(转)