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="" />
<param name="MaxFileSize" value="" />
<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="" />
<param name="MaxFileSize" value="" />
<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="" />
<param name="MaxSizeRollBackups" value="" />
<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="" />
//文件最大大小
<param name="MaxFileSize" value="" />
//日志文件名是否为静态
<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"); }
}

四.打开文件所在位置

即可,见到该输出文件

C# Log4Net简单使用方法的更多相关文章

  1. MySQL笔记-最简单的方法来解决找不到mysqld.sock文件的问题

    首先,环境:ubuntu 14.04,采用apt-get的方式安装的,手动安装可能路径设置稍有区别. 1.安装MySQL后,用命令行首次启动时发现找不到Mysqld.sock文件,提示: ERROR ...

  2. mfc显示静态图片最简单的方法

    一致都是研究如何调用opencv显示动态图片,但是很多时候在显示图标的时候,都是需要显示静态图片,现在将最简单的方法总结下: 1.添加picture控件 2.添加资源,要求为bmp 3.修改属性 结果 ...

  3. ECshop设置301最快捷最简单的方法

    ECshop设置301最快捷最简单的方法 在 init.php中加入以下代码 if (strtolower($_SERVER['SERVER_NAME'])!='www.fz1688.com') { ...

  4. git 的简单使用方法

    git 的简单使用方法1. 服务器 安装完成2. ssh 中的账号创建完成3. 创建 ssh 账号,会在 ssh 的安装目录下的home 目录里面,多了用户家目录4. 进入该目录 ,创建一个新的文件夹 ...

  5. JavaScript,一个超级简单的方法判断浏览器的内核前缀

    先说明,此处的方法是说超级简单的方法,不是指代码超级少,而是用非常简单的知识点,只要懂得怎么写JavaScript的行内样式就可以判断. 大家应该还记得JavaScript行内样式怎么写吧?(看来我是 ...

  6. NET MVC1项目升级到MVC2最简单的方法

    NET MVC1项目升级到MVC2最简单的方法 把MVC1项目升级到MVC2,最简单的做法如下: 新建MVC2项目 新建一个MVC2项目,把原来MVC1的项目文件全部拷贝到新建MVC2项目目录里,依照 ...

  7. js 获取当天23点59分59秒 时间戳 (最简单的方法)

    js 获取当天23点59分59秒 时间戳 (最简单的方法) new Date(new Date(new Date().toLocaleDateString()).getTime()+24*60*60* ...

  8. [ASP.NET]更简单的方法:FormsAuthentication登录ReturnUrl使用绝对路径

    转自:http://www.cnblogs.com/dudu/p/formsauthentication-returnurl-absoluteuri.html [ASP.NET]更简单的方法:Form ...

  9. ASP.Net MVC_DotNetZip简单使用方法,解决文件压缩的问题[转]

    准备工作: 在vs工具栏中找到NuGet   下载DotNetZip   现在就可以使用DotNetZip强大的类库了,在这里我给出一些简单的使用. ? 1 2 3 4 5 6 7 8 9 10 11 ...

随机推荐

  1. Microsoft SQL Server数据库学习(一)

    数据库的分类: 1.关系型数据库: 数据库名称 类型 公司 平台 Access 小型数据库 微软 Windows Mysql 小型数据库 AB--sun--甲骨文 Windows/linux/mac ...

  2. 图片懒加载插件echo.js——改造

    今天做一个列表项需要用到懒加载,搜到网友推荐的echo.js,试用了一下,还不错.除了懒加载,还提供了throttle——节流,即用户快速滑动列表时,很快滑过的项的图片不会加载,只会加载最后停下来的位 ...

  3. 【VB】时间戳转日期

    DateAdd("s", TimeStamp / 1000, "1970-01-01 00:00:00")

  4. ROS:Nvidia Jetson TK1开发平台

    原文链接: http://wiki.ros.org/NvidiaJetsonTK1 1. Nvidia Jetson TK1 Jetson TK1 comes pre-installed with L ...

  5. 为什么使用dispatch_sync

    1.充分利用多线程的性能: 2.将分散在多线程中的核心操作归并到一个queue执行(通常为一个串行队列). 3.便于在任务线程中进行后继操作. 术语: 任务线程: 同步模块.

  6. 学习Spider 了解 Scrapy的流程

    Scrapy 先创建项目 在windows下 scrapy startproject      myproject         #myproject是你的项目名称 cd 项目名称 scrapy g ...

  7. null值处理

    一,在实体类的上面加注解 import com.fasterxml.jackson.annotation.JsonInclude @JsonInclude(JsonInclude.Include.NO ...

  8. 关于node对文件的读取

    设计: 通过终端git / cmd 获取用户输入路径,然后遍历路径下所有的文件,打印输出. 因为需要命令行交互,所以引入prompt库 (https://github.com/flatiron/pro ...

  9. Linux shell文本处理工具

    搞定Linux Shell文本处理工具,看完这篇集锦就够了 Linux Shell是一种基本功,由于怪异的语法加之较差的可读性,通常被Python等脚本代替.既然是基本功,那就需要掌握,毕竟学习She ...

  10. Vue CLI 3.x 简单体验

    文档 中文文档 补充于02月10日 vue脚手架的3.x版本已经在开发中,现在还处于alpha版本.我们来看看有哪些变化. 使用 npm install -g @vue/cli 命名方式已经改为npm ...