下面我给大家介绍一下记日杂-log4net组件使用,当程序发布有服务器上,有时出现了错误, 都不知道出现在那,所以log4net组件很好解决这个问题。

1、添加开发包,并对log4net.dll的引用

2、在Web.Config (或App.Config)添加配置,

<configSections><!--一定要在所有节点之前-->

<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net"/>

</configSections>

3、新增log4net 节点

<log4net>

<root>

<!-- 日志级别 OFF(关闭),FATAL,ERROR,WARN,INFO,DEBUG,ALL(全部显示) -->

<level value="ALL" />

<appender-ref ref="RollingFileTracer" />

</root>

<!-- Print only messages of level DEBUG or above in the packages -->

<appender name="RollingFileTracer" type="log4net.Appender.RollingFileAppender,log4net"> <!--RollingFileAppender 表示滚动日志信息-->

<param name="File" value="App_Data/Log/" /> <!--日志信息保存的位置-->

<param name="AppendToFile" value="true" />  <!--是否是附加文件,true为在原来文件上追加内容-->

<param name="RollingStyle" value="Date" />  <!--文件根据什么来滚动储存, 这里是根据时间-->

<param name="MaxSizeRollBackups" value="10" /> <!--最多有多少个文件,当大于这个数, 就会把最先的文件删除-->

<param name="MaximumFileSize" value="1MB" />  <!--每个文件最大大小-->

<param name="DatePattern" value="&quot;Logs_&quot;yyyyMMdd&quot;.txt&quot;" /> <!--日志文件名格式-->

<param name="StaticLogFileName" value="false" />

<layout type="log4net.Layout.PatternLayout,log4net">

<param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n" /> <!--输出格式-->

</layout>

</appender>

</log4net>

可以对访问级别进行控制, 调用时可以设为all 这样调试信息都会输出到日志文件中, 待程序稳定后,设为Warn  这样调试信息不会输出到日志文件中, 同时也不用修改代码

4、初始化:在Global的Application_Start中写(程序启动的时候读取配置)

log4net.Config.XmlConfigurator.Configure();

注意:一定要加入这个, 没有加虽然8不会报错但是不会任何效果

5、在Global的Application_Error记录未处理的异常信息

例:ILog ilog = LogManager.GetLogger(typeof(Global));

ilog.Error("系统发生未处理的异常信息",Context.Error);

在mvc里面可以手动添加这个方法

protected void Application_Error(object sender, EventArgs e)

{

//当系统中发生未处理的异常信息, 这个方法会被调用

ILog ilog = LogManager.GetLogger(typeof(MvcApplication));

ilog.Error("系统发生未处理的异常信息", Context.Error);

}

在要打印日志的地方LogManager.GetLogger(typeof(Program)).Debug("信息");

通过LogManager.GetLogger传递要记录的日志类类名获得这个类的ILog(这样在日志文件中就能看到这条日志是哪个类输出的了),然后调用Debug方法输出消息。

因为一个类内部不止一个地方要打印日志,所以一般把ILog声明为一个static字段。

输出错误信息用ILog.Error方法,第二个参数可以传递Exception对象。log.Error("***错误"+ex),log.Error("***错误",ex)

例:

private static ILog ilog = LogManager.GetLogger(typeof(WebForm1));

protected void Page_Load(object sender, EventArgs e)

{

ilog.Debug("调试信息");

ilog.Info("信息");

ilog.Warn("警告信息");

ilog.Error("错误信息");

ilog.Fatal("严重信息");

}

记日杂-log4net组件使用的更多相关文章

  1. 点滴积累【C#】---使用log4net组件记录错误日志(以文本形式记录)

    效果: 描述: 利用log4net组件进行错误日志的记录,log4net记录错误的方式我所了解的有4种,No.1 文本形式记录日志,No.2存储到数据库形式记录日志,No.3控制台控制显示日志,No. ...

  2. 利用Log4net组件记录日志

    项目中利用Log4net记录日志还是比较方便的,我也按照网上的一些操作进行了实践 参考文章 1:Log4Net使用指南2:LOG4NET日志配置 组件下载 log4net组件下载 1:设置配置文件,这 ...

  3. 007.NET5 Log4Net组件使用

    NET 5 Log4Net组件使用 1. Nuget引入程序集:log4net + Microsfot.Extensions.Logging.Log4Net.AspNetCore 2. 准备配置文件 ...

  4. (转载)log4net 组件详解

    1.概述 log4net是.Net下一个非常优秀的开源日志记录组件.log4net记录日志的功能非常强大.它可以将日志分不同的等级,以不同的格式,输出到不同的媒介.本文主要是介绍如何在Visual S ...

  5. C# 开发 Windows 服务 使用Log4net 组件 不能生成日志文件

    使用VS2012开发Windows服务,需要使用Log4net日志组件记录业务情况,但是始终生成不了日志文件. /// <summary> /// 入口方法 /// </summar ...

  6. Log4Net组件的应用详解

    第一步: 添加并应用Log4net.dll.然后在Web.config文件中添加下面的配置局 <configSections>    <section name="log4 ...

  7. 动态修改log4net组件的日志文件名

    最近项目使用到log4net来记录日志,当然二话不说先到cnblogs上查看一下各位高手关于log4net的教程和心得主要参看了摩诘 的Log4Net使用指南 (确实是非常好的log4net的入门指南 ...

  8. 记一个复杂组件(Filter)的从设计到开发

    此文前端框架使用 rax,全篇代码暂未开源(待开源) 原文链接地址:Nealyang/PersonalBlog 前言 貌似在面试中,你如果设计一个 react/vue 组件,貌似已经是司空见惯的问题了 ...

  9. 快速入门系列--Log4net日志组件

    Log4net是阿帕奇基金会的非常流行的开源日志组件,是log4j的.NET移植版本,至今已经有11年的历史,使用方便并且非常稳定,此外很重要的一点是其和很多开源组件能很好的组合在一起工作,例如NHi ...

随机推荐

  1. (十八)链接数据库,QSqlTableModel

    QMYSQL——mysql QSQLITE——sqlite QOICQ——orcale 所需头文件 .pro增加 sql #include <QSqlDatabase> #include ...

  2. istio 安装与bookinfo示例运行

    目的 本文旨在帮助想了解istio安装和运行bookinfo示例的同学快速入门 前置准备 安装k8s和helm 1.k8s安装 修改主机名 hostnamectl set-hostname k8s-m ...

  3. [Vue] : Vue指令

    Vue指令之 v-cloak v-cloak是解决解决插值表达式的闪烁问题 . 给插值表达式的元素加上v-cloak <p v-cloak>{{ msg }}</p> 为v-c ...

  4. OUC_Summer Training_ DIV2_#7 718

    是18号做的题啦,现在才把报告补上是以前不重视报告的原因吧,不过现在真的很喜欢写报告,也希望能写一些有意义的东西出来. A - Dragons Time Limit:2000MS     Memory ...

  5. Beta冲刺(1/4)

    队名:福大帮 组长博客链接: https://www.cnblogs.com/mhq-mhq/p/11990568.html 作业博客 : https://edu.cnblogs.com/campus ...

  6. HearthBuddy BotManager

    MainWindow private void button_0_Click(object sender, RoutedEventArgs e) { Configuration.Instance.Sa ...

  7. koa 项目打包(使用webpack打包koa2 框架app)

    关键问题 一:所有node_modules里的模块都不进行打包 webpack的核心功能是将引用的各个模块打到一个文件里,并会将各种规范的模块进行统一的模块化处理(webpack规范). 然而node ...

  8. linux(redhat)安装jdk1.8

    第一步:下载Linux环境下的jdk1.8文件 我的Linux是32位的,因此我下载jdk-8u144-linux-i586.tar.gz文件. 下载链接地址:http://www.oracle.co ...

  9. JS中map()与forEach()的用法

    相同点: 1.都是循环遍历数组中的每一项 2.每次执行匿名函数都支持三个参数,参数分别为item(当前每一项),index(索引值),arr(原数组) 3.匿名函数中的this都是指向window 4 ...

  10. VBA ListView控件使用实例

    功能:ListView控件实现连接数据库实现显示查询数据空能. 图片: 代码: Private Sub CommandButton1_Click() Dim res As String res = T ...