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

在日志管理插件中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. SSM整合Dubbo案例

    一.Consumer子类 MyController类 @Controller @RequestMapping("/login") public class MyController ...

  2. 轮播图方法一,把每个slider-item看成一个对象进行轮播

    focus-slider 只用于存放轮播图片,方便修改图片内容 其他的按照默认创建即可. 注意这里的slider.html文件是在 text文件下面  index.html <!DOCTYPE ...

  3. vs 在高分屏下开发 winform 配置

    一.窗体控件大小 第一种方法:使用网格避免整除误差 在选项中将Windows窗体设计器的LayoutMode(布局模式)改成SnapToGrid(对齐到网格),并将Default Grid Cell ...

  4. DVWA-弱会话ID

    本周学习内容: 1.学习web安全深度剖析: 2.学习安全视频: 3.学习乌云漏洞: 4.总结Web应用安全权威指南: 实验内容: 进行DVWA弱会话ID实验 实验步骤: Low 1.打开DVWA,进 ...

  5. webstorm 和 vscode 的纠结

    自从知道了 vscode 之后,尝试了一下后,就开始纠结是否要更换到vscode. 特别是在 webstorm 卡的时候. 也研究了几日 vscode,安装了许多插件. 我是安装插件后, 就开始学习快 ...

  6. socket.error: [Errno 32] Broken pipe . tcp

    经过检查发现,是由于客户端请求的链接,在一次循环之后,产生的套接字关闭,没有新的客户端套接字进行请求连接,所以产生broken pipe错误

  7. [MYSQL手工注入](2)基于布尔的SQL盲注实战

    0x02 MYSQL 手工注入实战--基于布尔的SQL盲注 前言,之前有对MYSQL基于报错的手工注入进行过介绍,但今天的实验环境,并不是基于报错的SQL注入,而是一个基于布尔的SQL盲注测试流程. ...

  8. 2019SDN上机第4次作业

    一.作业要求 1.解压安装OpenDayLight控制器(本次实验统一使用Beryllium版本) 2.启动并安装插件 3.用Python脚本搭建给定的拓扑,并连接OpenDayLight控制器 4. ...

  9. C图形化第一步

    之前的贪吃蛇都是在cmd下实现,每次都要调用cls刷新屏幕,简直是闪瞎了我的狗眼. 度娘得知有一种方法可以避免闪烁,即:双缓冲.原理是先在内存中作图,然后将做好的图复制到前台,同时禁止背景刷新. 主要 ...

  10. WINDOWS远程控制LINUX终端XSHELL

    WINDOWS远程控制LINUX终端XSHELL 笔者购买的腾讯云CENTOS7,通过腾讯云的控制台登录,每次都要打开相关网页.输入密码,感觉操作非常不方便. 使用XSHELL远程控制LINUX终端, ...