用Log4Net来记录系统的日志信息

[http://www.cnblogs.com/xhwy/archive/2011/11/25/2263495.html]

几乎所有的大型应用都会有自己的用于跟踪调试的API。因为一旦程序被部署以后,就不太可能再利用专门的调试工具了。然而一个管理员可能需要有一套强大的日志系统来诊断和修复配置上的问题。

       经验表明,日志记录往往是软件开发周期中的重要组成部分。它具有以下几个优点:它可以提供应用程序运行时的精确环境,可供开发人员尽快找到应用程序中的 Bug;一旦在程序中加入了Log 输出代码,程序运行过程中就能生成并输出日志信息而无需人工干预。另外,日志信息可以输出到不同的地方(控制台,文件等)以备以后研究之用。

     Log4net就是为这样一个目的设计的,用于.NET开发环境的日志记录包。Log4Net是Apache开源的应用于.Net框架的日志记录工具。它功能强大,可配置性灵活,线程安全,对日志的输出管理和级别管理方便我们可以从http://logging.apache.org/log4net/download.html上下载最新版本。 然后引用log4net.dll到项目中。

下面我们一起来看一下,新建一个Web应用程序后,如何运用Log4Net进行日志信息的记录,详细配置如下:

全局Global 的配置

View Code
public class Global : System.Web.HttpApplication
{
private static ILog logger = LogManager.GetLogger(typeof(Global)); protected void Application_Start(object sender, EventArgs e)
{
log4net.Config.XmlConfigurator.Configure();// 读取配置文件初始化log4Net
IndexManager.Instance.Start();
}
protected void Application_Error(object sender, EventArgs e)
{
// 异常对象HttpContext.Current.Error
logger.Error("程序发生未捕获异常", HttpContext.Current.Error);
}

Web.config 的配置:

View Code
<?xml version="1.0"?>
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
</configSections>
<log4net>
<!-- Define some output appenders -->
<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
<file value="log.txt"/> <!—日志名称-->

<appendToFile value="true"/>
<maxSizeRollBackups value="10"/><!—日志最大可备份数-->

<maximumFileSize value="1024KB"/><!—日志文件大小-->

<rollingStyle value="Size"/>
<staticLogFileName value="true"/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger - %message%newline"/>
</layout>
</appender>
<root>
<level value="DEBUG"/>
<appender-ref ref="RollingLogFileAppender"/>
</root>
</log4net>

在项目中页面的运用代码:


记录的日志信息:

转载于:https://www.cnblogs.com/ahjxxy/archive/2011/11/27/2264792.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/422658.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

扩展插件_Adobe扩展工具插件系列

Adobe系列软件相信大家都已了解到其功能的强大&#xff0c;除了软件之外Adobe系列的插件的功能也是不可忽略的。今天给大家分享的几款Adobe系列超强PS扩展工具&#xff0c;都是一些摄影师、设计师经常用的到的&#xff0c;可以提升不少工作效率&#xff0c;大家千万别错过哦&am…

【Linux进程、线程、任务调度】三 CPU/IO消耗型进程 吞吐率/响应 SCHED_FIFO算法与SCHED_RR算法 SCHED_NORMAL算法和CFS算法 nice与renic chrt

学习交流加&#xff08;可免费帮忙下载CSDN资源&#xff09;&#xff1a;个人微信&#xff1a; liu1126137994学习交流资源分享qq群1&#xff08;已满&#xff09;&#xff1a; 962535112学习交流资源分享qq群2&#xff08;已满&#xff09;&#xff1a; 780902027学习交流资源…

dexpress 流程图_DevExpress控件使用经验总结

DevExpress是一个比较有名的界面控件套件&#xff0c;提供了一系列的界面控件套件的DotNet界面控件。本文主要介绍我在使用DevExpress控件过程中&#xff0c;遇到或者发现的一些问题解决方案&#xff0c;或者也可以所示一些小的经验总结。总体来讲&#xff0c;使用DevExpress控…

UCenter 表结构

Ucenter 数据库表结构说明uc_admins 管理员表数据表说明&#xff1a;管理员相关信息属性说明&#xff1a;uid mediumint(8) -- 用户IDusername char(15) -- 用户名allowadminsetting tinyint(1) --allowadminapp tinyint(1) --allowadminuser tinyint(1) --allowadminbadword t…

Java学习之路整理-技术书从入门到进阶最全50+本(珍藏版 )

学习交流加 个人微信&#xff1a;LyyCoder学习交流资源分享qq群1&#xff08;已满&#xff09;&#xff1a; 962535112学习交流资源分享qq群2&#xff1a; 780902027一.速读一遍&#xff08;最好在1~2天内完成&#xff09; 人的大脑记忆力有限&#xff0c;在一天内快速看完一本…

问题 seata_架构设计 | 基于Seata中间件,微服务模式下事务管理

一、Seata简介1、Seata组件Seata是一款开源的分布式事务解决方案&#xff0c;致力于提供高性能和简单易用的分布式事务服务。Seata将为用户提供了AT、TCC、SAGA、XA事务模式&#xff0c;为用户打造一站式的分布式解决方案。2、支持模式AT 模式基于支持本地 ACID 事务的关系型数…

Override and Overload (重写和重载)

1&#xff09;方法的重写overriding和重载overloading是java多态性的不同表现. &#xff08;2&#xff09;重写overriding是父类与子类之间的多态性的一种表现&#xff0c;重载是一个类中多态性的表现。如果子类中定义方法与其父类有相同的名称和参数&#xff0c;我们说该方法被…

程序员史诗级必读书单吐血整理四个维度系列80+本书(珍藏版)

互联网行业的特点是变化。若要提高互联网开发的技能&#xff0c;就必须跟上技术发展的步伐。埋首醉心于项目开发与实战&#xff0c;固然能够锤炼自己的开发技巧&#xff0c;却难免受限于经验与学识。 世界上并不存在速成的终南捷径&#xff0c;但阅读好的技术书籍&#xff0c;尤…

示波器1m和50欧姆示阻抗匹配_示波器输入阻抗选1MΩ还是50Ω的详细解析

熟悉示波器的朋友可能都会有过这样的困惑&#xff1a;输入阻抗有1MΩ和50Ω两种&#xff0c;我们到底该如何选择呢&#xff1f;一、传输线想要讲清楚50Ω的由来&#xff0c;我们需要先讲一下传输线。电信号实际上是以电磁波的形式在传输线中传播的。当传输线的尺寸不再远小于电…

前端学习(355):小练习

.已知两个矩形,宽高分别是200200,400400,甲矩形的坐标是x1,y1.乙矩形的坐标是x2,y2. 写出判断条件两个矩形是否相碰撞 <script>x1200;//自己随意定义坐标x2200;y1400;y2400;var boolfalse;//先定义一个布尔值为falseif(x1>x2 && x1<x2400 && y1&g…

Quartus 中快速分配器件管脚

在quartus中分配器件管脚最笨的方法是对于器件手册一个一个的敲进去&#xff0c;这样做如果用到的管脚很好还没有发觉什么不好&#xff0c;但是当用到的器件管脚很多的时候就会发现很麻烦&#xff0c;而且容易出错。接下来我来介绍一种很方便的方法。 首先在txt文档中建立管脚和…

Web前端书单从HTML到JS到AJAX到HTTP从框架到全栈

前言&#xff1a;技术书阅读方法论 一.速读一遍&#xff08;最好在1~2天内完成&#xff09; 人的大脑记忆力有限&#xff0c;在一天内快速看完一本书会在大脑里留下深刻印象&#xff0c;对于之后复习以及总结都会有特别好的作用。 对于每一章的知识&#xff0c;先阅读标题&…

自定义背景_新版快绘精选:自定义背景墙 | 吊顶 | 云渲染滤镜升级

New自定义背景墙没有合适的背景墙样板&#xff1f;你需要一个全世界独一无二&#xff0c;独属于你monent的背景墙&#xff1f;没问题&#xff01;无论是要这样↓还是这样↓快绘都能帮到你&#xff01;-- 请观看视频 --New自定义吊顶除了可以自定义背景墙&#xff0c;新版快绘也…

【C++学习详细教程目录】

学习交流加&#xff08;可免费帮忙下载CSDN资源&#xff09;&#xff1a;个人微信(进微信群加)&#xff1a; LyyCoder学习交流资源分享qq群1&#xff08;已满&#xff09;&#xff1a; 962535112学习交流资源分享qq群2&#xff08;已满&#xff09;&#xff1a; 780902027学习交…

删除开机选择系统

在我的电脑点右键--属性--高级--系统启动,系统失败和调试信息--设置--显示操作系统列表时间,和在需要时显示恢复选项的时间,在前面的小方格里打上构或去掉构就行了. 修改引导分区里面的BOOT.INI文件s C:\boot.ini 将只读属性去掉 [boot loader] timeout30 defaultmulti(0)dis…

底层知识学习记录目录表

学习交流加&#xff08;可免费帮忙下载CSDN资源&#xff09;&#xff1a;个人微信(进微信群加)&#xff1a; LyyCoder学习交流资源分享qq群1&#xff08;已满&#xff09;&#xff1a; 962535112学习交流资源分享qq群2&#xff08;已满&#xff09;&#xff1a; 780902027学习交…

cdn加载vue很慢_Vue.js 项目打包优化实践

首先上结果&#xff1a;把常用的 Vue&#xff0c;router&#xff0c;vuex&#xff0c;axios 的 runtime 包拆分了出来&#xff0c;改为 cdn&#xff1b;另外就是对于自己编写的业务代码进行分包&#xff0c;根据路由进行懒加载&#xff0c;可以较好的提高首屏加载速度。添加了全…

SharePoint 2010 网站模板要求在网站集中激活功能

从别人那里将其一个站点另存为模板&#xff0c;拷贝回来&#xff0c;上传到自己环境中的解决方案库里并激活。 然后新建站点&#xff0c;选择该模板&#xff0c;报如下错误&#xff1a; 解决方案&#xff1a; 打开在首要网站&#xff0c;网站操作---网站设置--网站集管理---网站…

C语言进阶深度学习目录表

学习交流加&#xff08;可免费帮忙下载CSDN资源&#xff09;&#xff1a;个人微信(进微信群加)&#xff1a; LyyCoder学习交流资源分享qq群1&#xff08;已满&#xff09;&#xff1a; 962535112学习交流资源分享qq群2&#xff08;已满&#xff09;&#xff1a; 780902027学习交…