log4net使用简明教程,快看看哟
在项目当中经常会遇到各种各样的问题,如何可以尽快找到问题,那么就只能靠日志了,所以一个系统的日志是否完备合理就尤为重要。
在日志管理插件中log4net相当流行,下面就简单说明一下使用方法。
log4net的官方网址为http://logging.apache.org/log4net/download_log4net.cgi
如果英文较好,可以直接看官方网站的教程,尤其是config部分的教程http://logging.apache.org/log4net/release/config-examples.html
下面示例教程的源代码下载网址为:log4net示例工程 下载地址2
1、引入log4net组件
在Visual Studio中选中所需添加log4net的项目,点击鼠标右键,选择【管理NuGet程序包】

输入关键字log4,查找对应程序包,并点击安装

完成完成之后,你可以在引用中看到已经成功引用log4net

2、配置log4net参数。由于配置文件内容比较多,详细内容可以下载示例工程代码,这里只是对有关错误日志信息的定义进行说明,其他类似
<appender name="ERRORAppender" type="log4net.Appender.RollingFileAppender">
<!-- 日志记录路径,此处为相对路径,即站点根目录 -->
<file value="logs\\ERROR\\" />
<!-- 日志记录方式,此处为追加模式 -->
<appendToFile value="true" />
<!-- 日志文件滚动模式,此处定义为复杂模式 -->
<rollingStyle value="Composite" />
<!-- 日志文件名规则,结合上一点配合使用,最终日志文件为logs\ERROR\2013\201309\20130927.log -->
<datePattern value="yyyy\\yyyyMM\\yyyyMMdd'.log'" />
<!-- 如下参数可直接使用,就不多做阐述,主要是上面的参数,其他教程没有 -->
<staticLogFileName value="false"/>
<maxSizeRollBackups value="100" />
<maximumFileSize value="10MB" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
</layout>
<filter type="log4net.Filter.LevelRangeFilter">
<param name="LevelMin" value="ERROR"/>
<param name="LevelMax" value="ERROR"/>
</filter>
</appender>
3、完成配置之后就可以进行在程序中调用了,为了方便调用,我定义了一个日志记录类LogHelper,具体代码如下:
using System;
using log4net; namespace WebApplication1.ActionHelper
{ public class LogHelper
{
private ILog logger; public LogHelper(ILog log)
{
this.logger = log;
} public void Info(object message)
{
this.logger.Info(message);
} public void Info(object message, Exception e)
{
this.logger.Info(message, e);
} public void Debug(object message)
{
this.logger.Debug(message);
} public void Debug(object message, Exception e)
{
this.logger.Debug(message, e);
} public void Warning(object message)
{
this.logger.Warn(message);
} public void Warning(object message, Exception e)
{
this.logger.Warn(message, e);
} public void Error(object message)
{
this.logger.Error(message);
} public void Error(object message, Exception e)
{
this.logger.Error(message, e);
} public void Fatal(object message)
{
this.logger.Fatal(message);
} public void Fatal(object message, Exception e)
{
this.logger.Fatal(message, e);
}
} public class LogFactory
{
static LogFactory()
{
} public static LogHelper GetLogger(Type type)
{
return new LogHelper(LogManager.GetLogger(type));
} public static LogHelper GetLogger(string str)
{
return new LogHelper(LogManager.GetLogger(str));
}
}
}
然后再具体页面中可以按照如下方式进行调用
using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls; namespace WebApplication1
{
public partial class Default : System.Web.UI.Page
{
private ActionHelper.LogHelper log; protected void Page_Load(object sender, EventArgs e)
{
pageLoad();
} private void pageLoad()
{ log = ActionHelper.LogFactory.GetLogger(MethodBase.GetCurrentMethod().DeclaringType.FullName + ":" + MethodBase.GetCurrentMethod().Name);
log.Info("起始页面载入222");
log.Error("起始页面载入");
}
}
}
4、如为了省事,需要对系统中所有的异常进行捕捉处理,则可以在Global.asax中进行定义
protected void Application_Error(object sender, EventArgs e)
{
ActionHelper.LogHelper log = ActionHelper.LogFactory.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
log.Error("未处理异常",HttpContext.Current.Server.GetLastError());
}
至此就设置完成了。
全部设置下来其实还是比较简单的,如果实在不明白,可以直接下载:log4net示例工程 下载地址2 一看就明白了。
log4net使用简明教程,快看看哟的更多相关文章
- log4net使用简明教程
转自: http://www.cnblogs.com/songhaipeng/p/3343606.html http://www.cnblogs.com/TianFang/archive/2013/0 ...
- 2013 duilib入门简明教程 -- 自绘控件 (15)
在[2013 duilib入门简明教程 -- 复杂控件介绍 (13)]中虽然介绍了界面设计器上的所有控件,但是还有一些控件并没有被放到界面设计器上,还有一些常用控件duilib并没有提供(比如 ...
- Docker简明教程
Docker简明教程 [编者的话]使用Docker来写代码更高效并能有效提升自己的技能.Docker能打包你的开发环境,消除包的依赖冲突,并通过集装箱式的应用来减少开发时间和学习时间. Docker作 ...
- Java8简明教程(转载)
ImportNew注:有兴趣第一时间学习Java 8的Java开发者,欢迎围观<征集参与Java 8原创系列文章作者>. 以下是<Java 8简明教程>的正文. “Java并没 ...
- Lisp简明教程
此教程是我花了一点时间和功夫整理出来的,希望能够帮到喜欢Lisp(Common Lisp)的朋友们.本人排版很烂还望多多海涵! <Lisp简明教程>PDF格式下载 <Lisp简明教程 ...
- 【前端】vue.js环境配置以及实例运行简明教程
vue.js环境配置以及实例运行简明教程 声明:本文档编写参考如下两篇博客,是对它们的修改与补充,欢迎点击链接查看原文: 原文1:vue.js在windows本地下搭建环境和创建项目 原文2:Vue. ...
- SaltStack简明教程
第1章 SaltStack简明教程 1.1 SaltStack简介 SaltStack是基于Python开发的一套C/S架构配置管理工具(功能不仅仅是配置管理,如使用salt-cloud配置AWS E ...
- Vbs 脚本编程简明教程之一
—为什么要使用 Vbs ? 在 Windows 中,学习计算机操作也许很简单,但是很多计算机工作是重复性劳动,例如你每周也许需要对一些计算机文件进行复制.粘贴.改名.删除,也许你每天启动 计算机第一件 ...
- Windows Server 2019安装OpenSSH Server简明教程
Windows Server 2019安装OpenSSH Server简明教程 Windows Server 2019内置OpenSSH Server组件了.只不过OpenSSH Server默认 ...
随机推荐
- Java编译器的优化
public class Notice { public static void main(String[] args) { // 右侧20是一个int类型,但没有超过左侧数值范围,就是正确的 // ...
- 使用jqprint插件实现打印页面内容
业务场景 客户需要在页面有一个打印按钮,点击之后可以打印Echarts图表的内容以及文字提示信息,经谷歌搜索发现,实现方法大概有三种之多,其他两种不太熟悉,而采用的这种打印方式是一个在jQuery的基 ...
- luogu 2312 解方程 乱搞+取模
思路非常好想,但是你很难想到去用这个算法,因为这个几乎就是个乱搞~ 我们发现多项式中每一个系数都很大,但是 $m$ 却很小,即最多只用 $10^6$ 个整数需要验证. 我们知道,如果一个数等于 $0$ ...
- pcl-设置多线段宽度和颜色
显示点云有使用vtk的,有使用 ros 中riz ?库的,使用pcl显示点云数据比较方便,但是对于一些模型形状只能固定特定的效果,比如说直线段,只能绘制点到点两点之间的线段.但是项目需要绘制点1到点2 ...
- 线程池(4)-参数-RejectedExecutionHandler
1.介绍 当线程池线程数大于最大线程数(maximumPoolSize)时,多余的任务,程序应该按照什么拒绝策略处理. 2.拒绝策略4个 AbortPolicy:丢弃任务,并抛出RejectedExe ...
- input的禁止标签
<body> <input type="text" name="" value="你好" disabled="d ...
- rapidxml学习
参考: 官网http://rapidxml.sourceforge.net/ https://blog.csdn.net/wqvbjhc/article/details/7662931 http:// ...
- 【Python 代码】生成hdf5文件
import random from PIL import Image import numpy as np import os import h5py from PIL import Image L ...
- VMware 下 Ubuntu 18.04 登录框消失解决
问题:ubuntu18卡在登陆界面,但是没有出现选择登陆用户的框,只有紫色屏幕 解决方法:参考VMware 下 Ubuntu 18.04 登录框消失解决记录
- BurpSuite intuder里保存所有网页的特定内容:以bugku的cookies欺骗为例题
这题里想读取index.php只能一行一行的读,通过控制line参数的值.如下: 正常的writeup都是写个爬虫,但我觉得burp肯定有自带这种功能,不用重造轮子.经过学习后发现以下步骤可以实现. ...