下面我给大家介绍一下记日杂-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. [JZOJ6347]:ZYB玩字符串(DP+记忆化搜索)

    题目描述 $ZYB$获得了一个神秘的非空字符串$p$. 初始时,串$S$是空的. $ZYB$会执行若干次这样的操作: $1.$选取$S$中的一个任意的位置(可以是最前面或者最后面) $2.$在这个位置 ...

  2. JAVA之G1与CMS垃圾回收

    G1 GC,全称Garbage-FirstGarbage Collector,通过-XX:+UseG1GC参数来启用,作为体验版随着JDK 6u14版本面世,在JDK 7u4版本发行时被正式推出,相信 ...

  3. Java和python中的面向对象

    Python与Java中的示例类 Java类是在与类同名的文件中定义的.因此,必须将该类保存在一个名为Car.java的文件中.每个文件中只能定义一个类. public class Car { pri ...

  4. python 二分查找代码

    二分查找的条件是必须是排好的数字 """二分查找""" def binary_searhc(arr, target): n = len(ar ...

  5. LNMP和LAMP的搭建

    LNMP 环境:阿里云ubuntu 16 mysql: apt-get install mysql-server mysql-client php: apt-get install php-fpm p ...

  6. PHP学习之验证码类

    <?php $code = new Code(); $code->outImage(); class Code { //验证码个数 protected $number; //验证码类型 p ...

  7. ios 报错记录

    1. 运行xcode 报错:unterminated conditional directive #ifdef 缺少对应的#endif 在结尾加上就好了 2.iOS添加非(c,c++)文件引发的&qu ...

  8. awk 分组求和

    awk 分组求和 分组求和 awk '{s[substr($2,1,6)] += $1} END{for(i in s) {print i, s[i]/(1024*1024*1024)} }' fil ...

  9. 将ejs模板文件的后缀换成html

    1.app.js的头部定义ejs: var ejs = require('ejs'): 2注册html模板引擎: app.engine('html',ejs.__express); 3.将模板引擎换成 ...

  10. 小D课堂 - 新版本微服务springcloud+Docker教程_4-01 常用的服务间调用方式讲解

    笔记 第四章 服务消费者ribbon和feign实战和注册中心高可用 1.常用的服务间调用方式讲解     简介:讲解常用的服务间的调用方式 RPC:             远程过程调用,像调用本地 ...