log4net日志的配置及简单应用

在程序运行中,往往会出现各种出乎开发人员意料的异常或者错误,所以,记录详细的程序运行日志信息,有利于开发人员和运维人员排查异常信息,提高工作效率。而本菜鸟在大神推荐和指导下使用log4net这一插件工具,其中也学到了一些皮毛,所谓好记性不如烂笔头嘛。为此,将把这些心得体会记录下来,以免遗忘。同时,也为各位童鞋提供一些参考。在此声明,本文粗浅之极,大神莫入。

对于log4net有什么功能,这里就不赘述了。直接进入本文重点,也就是log4net的配置和简单使用。

首先,项目要引入log4net.dll。

然后,为项目增加配置文件——log4net.config

<log4net>
<!--日志配置,按日期保存-->
  <appender name="DefaultLog" type="log4net.Appender.RollingFileAppender">
    <file value="LogFiles\" />
    <threshold value="WARN" />
    <appendToFile value="true" />
    <maxSizeRollBackups value="-1" />
    <maximumFileSize value="30MB" />
    <rollingStyle value="Composite" />
    <datePattern value=‘yyyy-MM-dd".log"‘ />
    <staticLogFileName value="false" />
    <layout type="log4net.Layout.PatternLayout">
      <header value="-----------程序开始运行-----------
" />
      <footer value="-----------程序结束运行-----------

" />
      <conversionPattern value="%date [%thread] %-5level %logger - %message%n" />
    </layout>
  </appender>

  <!--日志配置,按日期保存-->
  <appender name="BaseLog" type="log4net.Appender.RollingFileAppender">
    <file value="LogFiles\" />
    <appendToFile value="true" />
    <maxSizeRollBackups value="-1" />
    <maximumFileSize value="30MB" />
    <rollingStyle value="Composite" />
    <datePattern value=‘yyyy-MM-dd".log"‘ />
    <staticLogFileName value="false" />
    <layout type="log4net.Layout.PatternLayout">
      <header value="-----------程序开始运行-----------
" />
      <footer value="-----------程序结束运行-----------

" />
      <conversionPattern value="%date [%thread] %-5level - %message%newline" />
    </layout>
  </appender>

  <!--控制台日志配置,按日期保存-->
  <appender name="ConsoleLog" type="log4net.Appender.RollingFileAppender">
    <file value="LogFiles\" />
    <appendToFile value="true" />
    <maxSizeRollBackups value="-1" />
    <maximumFileSize value="30MB" />
    <rollingStyle value="Composite" />
    <datePattern value=‘yyyy-MM-dd".log"‘ />
    <staticLogFileName value="false" />
    <layout type="log4net.Layout.PatternLayout">
      <header value="-----------程序开始运行-----------
" />
      <footer value="-----------程序结束运行-----------

" />
      <conversionPattern value="%date [%thread] %-5level - %message%newline" />
    </layout>
  </appender>

  <!--窗体日志配置,按日期保存-->
  <appender name="FromLog" type="log4net.Appender.RollingFileAppender">
    <file value="LogFiles\" />
    <appendToFile value="true" />
    <maxSizeRollBackups value="-1" />
    <maximumFileSize value="30MB" />
    <rollingStyle value="Composite" />
    <datePattern value=‘yyyy-MM-dd".log"‘ />
    <staticLogFileName value="false" />
    <layout type="log4net.Layout.PatternLayout">
      <header value="-----------程序开始运行-----------
" />
      <footer value="-----------程序结束运行-----------

" />
      <conversionPattern value="%date [%thread] %-5level - %message%newline" />
    </layout>
  </appender>

  <!-- 根级别,作为默认值 -->
  <root>
    <!--
        OFF   - 不输出任何日志
        FATAL - 仅输异常
        ERROR - 输出错误/异常信息
        WARN  - 输出警告/错误/异常信息
        INFO  - 输出普通/警告/错误/异常信息,默认
        DEBUG - 输出调试/普通/警告/错误/异常信息
        ALL   - 与DEBUG相同
    -->
    <level value="WARN" />
    <!--如果找不到对应的logger,会自动使用这个默认的日志-->
    <appender-ref ref="DefaultLog" />
  </root>
  <logger name="MyLog.Base.Log">
    <level value="DEBUG" />
    <appender-ref ref="BaseLog" />
  </logger>
  <logger name="MyLog.Base.Console">
    <level value="DEBUG" />
    <appender-ref ref="ConsoleLog" />
  </logger>

  <logger name="MyLog.Base.Form">
    <level value="DEBUG" />
    <appender-ref ref="FromLog" />
  </logger>
</log4net>

在此,简单解释上面配置文件的使用,首先是<appender/>和<logger/>节点必须成对,每对配置,就是一个日志输出的配置。<appender-ref ref="BaseLog" />中属性ref的值对应<appender>的属性name的值。而<layout/>中的信息为日志输出的格式信息。其他的,就不一一解释了。

配置文件完成以后,为了让log4跑起来,还需要添加一个调用类——Logger。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using log4net;

namespace Base
{
    public  class Loggers
    {
        public static readonly ILog FormLogger = LogManager.GetLogger("MyLog.Base.Form");

        public static readonly ILog ConsoleLogger = LogManager.GetLogger("MyLog.Base.Console");

        public static readonly ILog BaseLogger = LogManager.GetLogger("MyLog.Base.Log");
    }
}

值得注意的是,上面类中GetLogger("MyLog.Base.Log")中“MyLog.Base.Log”必须和配置文件中<loggger name="MyLog.Base.Log">的name属性值保持一致。
之后,为了让log4net跑起来,还需要添加代码来加载log4net配置文件,根据大神的传授,有两种加载方法:

1、在程序文件AssemblyInfo.cs中加上

[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", Watch = true)]

2、在程序load事件中加上

 //读取log4net配置文件
            log4net.Config.XmlConfigurator.Configure(new Uri(AppDomain.CurrentDomain.SetupInformation.ApplicationBase + "log4net.config"));

P.S:方法一我没有实现成功,可能是因为某些问题我没有发现,哪位童鞋知道原因可以告知我一下。不过方法二的使用成功了。

最后就是写入信息到文件的问题了,其实就一句代码:

Loggers.BaseLogger.Debug("Run Start");

同时,我们还可以根据日志输出的级别来选取输出的方法,日志的输出级别如下:

OFF   - 不输出任何日志
        FATAL - 仅输异常
        ERROR - 输出错误/异常信息
        WARN  - 输出警告/错误/异常信息
        INFO  - 输出普通/警告/错误/异常信息,默认
        DEBUG - 输出调试/普通/警告/错误/异常信息
        ALL   - 与DEBUG相同

本文完。

附注:log4net下载地址:点击打开链接

log4net日志的配置及简单应用

时间: 2024-08-22 16:45:49

log4net日志的配置及简单应用的相关文章

关于log4net日志的配置流程

最近又重新整理一下log4net日志的配置,现在记录一下流程和一些遇到的问题,以备后续使用,具体的配置参数等信息.此文无,见谅! 1. 下载log4net.dll文件(网上很多,随便找一个!) 2. 项目中引用此dll 3. appconfig中配置log4net(具体配置方案有很多例子.) 4. AssemblyInfo.cs 中添加"[assembly: log4net.Config.XmlConfigurator(Watch = true)]" 5. winform中调用&quo

.net Log4Net日志的配置及使用 全局异常过滤器

.net添加Log4Net日志的配置及使用,以及将其设置为全局异常过滤器,主要有以下步骤: 1. 新建一个Web应用程序2. 引用log4net.dll3. 添加config文件4. 在AssemblyInfo.cs进行注册5. 在Global.asax中进行初始化设置6. 添加Log4Helper.cs帮助类7. 新增过滤器LogExceptionFilter.cs文件8. 在FilterConfig.cs中添加过滤器9. 在Global.asax中注册过滤器 详细步骤如下: 1.新建一个we

Log4net日志GUI配置工具

关于log4net的配置文章在园子里真的很多,但是有关GUI界面配置的文章确定太少,改写了一个以前很早的工具 以前的那个有很多的问题,这个基本的大的问题没有,可能一个小问题还是需要修改下,基本功能肯定是能满足的,先上图再说: 首先选择一个要配置的文件,然后加载配置文件里面相关配置显示到界面上,然后再分别配置Appender与logger,关于它们, appender其实就是输出到哪种介质上,也就是输出源,logger就是记录器. 点击Appenders中的新增,可以添加一个新的附加器,如下图所示

Log4net 日志记录配置信息

<log4net> 8 <!--配置日志的级别,低于此级别的就不写到日志里面去 9 OFF.FATAL.ERROR, WARN, INFO, DEBUG, ALL 10 --> 11 <root> 12 <level value="DEBUG" /> 13 <appender-ref ref="LogFileAppender" /> 14 <appender-ref ref="Console

[转]Log4Net日志插件配置详解

log4net是一款优秀的第三方日志框架,可以很容易的加载到开发项目中(引用log4net的dll,再配置些基本参数即可),帮助程序员把日志信息输出到各种不同的目标,常见的有文本.数据库.windows日志.邮件.内存缓冲区等目标. 首先需要log4net的dll(源码中dll版本是1.2.10.0),引用到程序中,然后再配置下配置文件,配置文件如下: [html] view plain copy <?xml version="1.0"?> <configuratio

C# 日志的配置流程

转载自https://www.cnblogs.com/SuperMetalMax/p/6203188.html 1. 下载log4net.dll文件 http://download.csdn.net/detail/abc456456456456/7653857 2. 项目中引用此dll 3. appconfig中配置log4net <?xml version="1.0" encoding="utf-8"?> <configuration> &

Log4Net日志记录简单使用讲解

一. Log4Net 简介 Log4net 是 Apache 下一个开放源码的项目,我们可以控制日志信息的输出目的地(数据库.控制台.文本文档.文件).Log4net中定义了多种日志信息输出模式. 在做项目的时候令我最头疼的是在程序发布到正式环境之后出现了问题,我们不能调试而且问题很难重新,于是我们需要大量的日志数据来精确的跟踪程序的运行状况. Log4net就可以帮我来解决这一个难题,对于日志的输出我们不需要人为的去干涉,它可以根据需要将日志输出到控制台,文本文件,windows 日志事件查看

Log4Net 日志配置

前述 园子里有许多人对log4net这款开源的日志记录控件有很多介绍.在这里个人再做一次总结,希望对以后有所帮助,需要的时候可以直接使用,减 少查阅资料的时间.利用log4net可以方便地将日志信息记录到文件.控制台.Windows事件日志和数据库,并且我们还可以记载控制要记载的日志级 别,可以记载的日志类别包括:FATAL(致命错误).ERROR(一般错误).WARN(警告).INFO(一般信息).DEBUG(调试信息). log4net 有四种主要的组件,分别是Logger(记录器), Re

log4net 日志框架的配置

log4net 日志框架的配置(一) 添加对log4net程序集的引用 选择程序集文件添加引用即可,需要注意的是需要添加相应程序版本的程序集,如果你的应用是基于.netFramework2.0,则应选择net 2.0版本的程序集 修改配置文件,配置log4net相关设置 在web.config或在app.config(如果没有则创建一个)中,配置log4net的使用 1 <?xml version="1.0"?> 2 3 <configuration> 4 &l