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

即可,见到该输出文件
C# Log4Net简单使用方法的更多相关文章
- MySQL笔记-最简单的方法来解决找不到mysqld.sock文件的问题
首先,环境:ubuntu 14.04,采用apt-get的方式安装的,手动安装可能路径设置稍有区别. 1.安装MySQL后,用命令行首次启动时发现找不到Mysqld.sock文件,提示: ERROR ...
- mfc显示静态图片最简单的方法
一致都是研究如何调用opencv显示动态图片,但是很多时候在显示图标的时候,都是需要显示静态图片,现在将最简单的方法总结下: 1.添加picture控件 2.添加资源,要求为bmp 3.修改属性 结果 ...
- ECshop设置301最快捷最简单的方法
ECshop设置301最快捷最简单的方法 在 init.php中加入以下代码 if (strtolower($_SERVER['SERVER_NAME'])!='www.fz1688.com') { ...
- git 的简单使用方法
git 的简单使用方法1. 服务器 安装完成2. ssh 中的账号创建完成3. 创建 ssh 账号,会在 ssh 的安装目录下的home 目录里面,多了用户家目录4. 进入该目录 ,创建一个新的文件夹 ...
- JavaScript,一个超级简单的方法判断浏览器的内核前缀
先说明,此处的方法是说超级简单的方法,不是指代码超级少,而是用非常简单的知识点,只要懂得怎么写JavaScript的行内样式就可以判断. 大家应该还记得JavaScript行内样式怎么写吧?(看来我是 ...
- NET MVC1项目升级到MVC2最简单的方法
NET MVC1项目升级到MVC2最简单的方法 把MVC1项目升级到MVC2,最简单的做法如下: 新建MVC2项目 新建一个MVC2项目,把原来MVC1的项目文件全部拷贝到新建MVC2项目目录里,依照 ...
- js 获取当天23点59分59秒 时间戳 (最简单的方法)
js 获取当天23点59分59秒 时间戳 (最简单的方法) new Date(new Date(new Date().toLocaleDateString()).getTime()+24*60*60* ...
- [ASP.NET]更简单的方法:FormsAuthentication登录ReturnUrl使用绝对路径
转自:http://www.cnblogs.com/dudu/p/formsauthentication-returnurl-absoluteuri.html [ASP.NET]更简单的方法:Form ...
- ASP.Net MVC_DotNetZip简单使用方法,解决文件压缩的问题[转]
准备工作: 在vs工具栏中找到NuGet 下载DotNetZip 现在就可以使用DotNetZip强大的类库了,在这里我给出一些简单的使用. ? 1 2 3 4 5 6 7 8 9 10 11 ...
随机推荐
- 【PostgreSQL-9.6.3】函数(2)--字符型函数
在上一篇博文中我们交流了数值型函数,这篇我们将讨论PostgreSQL中的字符型函数. 1. reverse(string) reverse函数可以将string字符串的字母显示顺序颠倒. test= ...
- 时序分析:HMM模型(状态空间)
关于HMM模型:时序分析:隐马尔科夫模型 HMM用于手势识别: 训练时每一种手势对应一个HMM-Model,识别率取最大的一个HMM即可. 类似于一个封装的完成多类识别器功能单层网络. 优点: 尤其 ...
- C++的Android接口---配置NDK
一. 在安卓工具网站下载ADT:http://tools.android-studio.org/index.php 参考链接:http://1527zhaobin.iteye.com/blog/186 ...
- 【sqli-labs】 less29 GET- Error based -Impidence mismatch -Having a WAF in front of web application (GET型基于错误的带有WAF注入)
这关有点意思,有一点需要事先注意,这关玩的是login.php而不是默认的index.php 再注入之前需要先了解一下HPP(HTTP Parameter Pollution),详情参照这篇 http ...
- HDU_1398_母函数
Square Coins Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Tota ...
- Shell 环境变量也是变量
跟定义普通变量一样,语法是 变量名=值,只不过这个名字叫 PATH,值是路径 shell PATH=/usr/local/python-2.7.6/bin 导入的话使用export命令 shell e ...
- 09 Django组件之用户认证组件
没有学习Django认证组件之前使用装饰器方法 from django.shortcuts import render, HttpResponse, redirect from app01.MyFor ...
- jsp 多条件组合查询
web层: public String query(HttpServletRequest request, HttpServletResponse response) throws ServletEx ...
- PAT_A1034#Head of a Gang
Source: PAT A1034 Head of a Gang (30 分) Description: One way that the police finds the head of a gan ...
- js-2018-11-09 关于Array中的srot()方法和compare()方法
Array中的srot()方法 sort()方法是用来重排序的方法.在默认情况下,sort()方法按升序排列数组项----即最小的值位于最前面,最大的值排在最后面. 我们看看官方是怎么说的: arra ...