在项目当中经常会遇到各种各样的问题,如何可以尽快找到问题,那么就只能靠日志了,所以一个系统的日志是否完备合理就尤为重要。

在日志管理插件中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使用简明教程,快看看哟的更多相关文章

  1. log4net使用简明教程

    转自: http://www.cnblogs.com/songhaipeng/p/3343606.html http://www.cnblogs.com/TianFang/archive/2013/0 ...

  2. 2013 duilib入门简明教程 -- 自绘控件 (15)

        在[2013 duilib入门简明教程 -- 复杂控件介绍 (13)]中虽然介绍了界面设计器上的所有控件,但是还有一些控件并没有被放到界面设计器上,还有一些常用控件duilib并没有提供(比如 ...

  3. Docker简明教程

    Docker简明教程 [编者的话]使用Docker来写代码更高效并能有效提升自己的技能.Docker能打包你的开发环境,消除包的依赖冲突,并通过集装箱式的应用来减少开发时间和学习时间. Docker作 ...

  4. Java8简明教程(转载)

    ImportNew注:有兴趣第一时间学习Java 8的Java开发者,欢迎围观<征集参与Java 8原创系列文章作者>. 以下是<Java 8简明教程>的正文. “Java并没 ...

  5. Lisp简明教程

    此教程是我花了一点时间和功夫整理出来的,希望能够帮到喜欢Lisp(Common Lisp)的朋友们.本人排版很烂还望多多海涵! <Lisp简明教程>PDF格式下载 <Lisp简明教程 ...

  6. 【前端】vue.js环境配置以及实例运行简明教程

    vue.js环境配置以及实例运行简明教程 声明:本文档编写参考如下两篇博客,是对它们的修改与补充,欢迎点击链接查看原文: 原文1:vue.js在windows本地下搭建环境和创建项目 原文2:Vue. ...

  7. SaltStack简明教程

    第1章 SaltStack简明教程 1.1 SaltStack简介 SaltStack是基于Python开发的一套C/S架构配置管理工具(功能不仅仅是配置管理,如使用salt-cloud配置AWS E ...

  8. Vbs 脚本编程简明教程之一

    —为什么要使用 Vbs ? 在 Windows 中,学习计算机操作也许很简单,但是很多计算机工作是重复性劳动,例如你每周也许需要对一些计算机文件进行复制.粘贴.改名.删除,也许你每天启动 计算机第一件 ...

  9. Windows Server 2019安装OpenSSH Server简明教程

    Windows Server 2019安装OpenSSH Server简明教程   Windows Server 2019内置OpenSSH Server组件了.只不过OpenSSH Server默认 ...

随机推荐

  1. Oracle 日期型 将timestamp类型转换为date类型

    Oracle将timestamp类型转换为date类型有三种方法 1.使用to_char先转为字符型,在使用to_date再转为日期型 select to_date(to_char(systimest ...

  2. 06.volatile关键字

    volatile volatile关键字的主要作用是使变量在多个线程间可见 使用方法: private volatile int number=0; 图示: 两个线程t1和t2共享一份数据,int a ...

  3. golang-os文件操作

    golang-os文件操作 package main import ( "fmt" "os" ) //func main() { // f,err :=os.C ...

  4. SpringMVC的请求转发的三种方法

    SpringMVC请求转发的三种方法 首先明白请求转发是一次请求,地址栏不会发生变化,区别于重定向.springmvc环境自行配置. 以下举例中存在如下文件/WEB-INF/pages/success ...

  5. avalon如何用年月日的方式输出..

    在avolon里面的http://avalonjs.coding.me/filter.html  可以找到与date相关的转化,如果是要转化为年月日的形式,看下面的代码: <span style ...

  6. 开源GIT仓库-----gitlab

    简介:GitLab是一个利用 Ruby on Rails 开发的开源应用程序,实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目.它拥有与Github类似的功能,能够浏览源代码 ...

  7. Samba文件共享服务设置

    SMB的主程序 smbd:SMB-TCP139,CIFS-TCP445 nmbd:NetBios-UDP137,138 SMB主程序对应的两个服务 /etc/init.d/smb /etc/init. ...

  8. Parse发布Bolts,一个面向iOS和Android的底层库集合

    转载自:http://www.infoq.com/cn/news/2014/02/parse-announces-bolts 数月前,Parse被Facebook收购.最近,它开源了一个面向iOS和A ...

  9. 【caffe Blob】caffe中与Blob相关的代码注释、使用举例

    首先,Blob使用的小例子(通过运行结果即可知道相关功能): #include <vector> #include <caffe/blob.hpp> #include < ...

  10. ubuntu之路——day10.6 如何理解人类表现和超过人类表现

    从某种角度来说,已知的人类最佳表现其实可以被当做贝叶斯最优错误,对于医学图像分类可以参见下图中的例子. 那么如何理解超过人类表现,在哪些领域机器已经做到了超越人类呢?