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默认 ...
随机推荐
- YAML_10 把监听端口是8080的Apache服务全部停止
ansible]# vim ad.yml --- - hosts: cache remote_user: root tasks: - shell: netstat -atunlp | ...
- 一个简单的直播demo for java
obs推流,nginx挂rtmp模块,配置rtmp端口,obs向此端口推流,video.js H5拉流播放 加阿里CDN 超级简单- -
- Cogs 452. Nim游戏!(博弈)
Nim游戏! ★ 输入文件:nim!.in 输出文件:nim!.out 简单对比 时间限制:1 s 内存限制:128 MB 甲,乙两个人玩Nim取石子游戏. nim游戏的规则是这样的:地上有n堆石子( ...
- JSON字符串 拼接与解析
常用方式: json字符串拼接(目前使用过两种方式): 1.运用StringBuilder拼接 StringBuilder json = new StringBuilder(); json.appen ...
- vue-cli3配置多页面入口
假如要单独将登陆页面当成一个项目入口文件: 第一步:创建一个登陆页面的文件 在项目public文件夹下创建一个login.html,其实就是将index.html复制一份,将title改一下: 第二步 ...
- std_msgs/String.msg
from std_msgs.msg import String http://docs.ros.org/api/std_msgs/html/msg/String.html
- mint-ui 做省市选择组件
省市的数据是动态的,其实不是动态的更好搞 <!-- 省市选择 --> <mt-popup v-model="popupVisible" position=&quo ...
- jquery选择器(1)
jQuery 元素选择器 jQuery 使用 CSS 选择器来选取 HTML 元素. $("p") 选取 <p> 元素. $("p.intro") ...
- 深入理解volatile原理与使用
volatile:称之为轻量级锁,被volatile修饰的变量,在线程之间是可见的. 可见:一个线程修改了这个变量的值,在另一个线程中能够读取到这个修改后的值. synchronized除了线程之间互 ...
- 和小哥哥一起刷洛谷(7) 图论之dijkistra算法
关于dijkstra 维基百科 戴克斯特拉算法(英语:Dijkstra's algorithm,又译迪杰斯特拉算法)由荷兰计算机科学家艾兹赫尔·戴克斯特拉在1956年提出.戴克斯特拉算法使用了广度优先 ...