zoukankan      html  css  js  c++  java
  • Log4net快速配置使用指南。(快速搭建log4net日志平台手册)

    每做一个新项目,都会用到log4net,但总是忘记如何快速配置。有时在网上搜半天也找不到好的模板,大都在介绍参数的使用,在此做下总结,争取下次用时仅10分钟就可搭建好log4net。

    直接上介绍的步骤:

    1. 官网下载最新版的log4net。http://logging.apache.org/log4net/download_log4net.cgi,打开官网,在Binaries类别下,下载最新版的log4net包,点击如下图所示按钮下载:

    2. 找到所需的log4net版本。下载后,解压缩包,找到自己.net程序所对应的log4net版本,我用的是VisualStudio 2010,项目用的是.netframework 4.0, 所以我用的log4net版本在C:UserszhengshuangliangDownloadslog4net-1.2.13-bin-newkeylog4net-1.2.13in et4.0 elease

    3. 选择配置信息存放方式。我喜欢把log4net的配置文件和项目的配置文件(app.config或web.config)放在一起,所以我删除了log4net自带的配置文件log4net.xml,而是把配置信息放在app.config或web.config里。

    4. 在最终执行的项目配置文件里添加log4net配置信息。在app.config或web.config中添加如下面代码中的<configSections>和<log4net>的内容(代码中以黄色背景标识)。

      只需在最终执行的项目下添加配置文件就行,因为所有的其他项目或引用的dll都会走同一个入口(可执行项目),所以整个产品就只有一份log4net配置文件即可,在你想写日志的项目里引用log4net.dll,直接创建Logger对象写日志即可,详细操作可参照步骤6

      以下log4net配置信息将会在可执行的项目目录下创建Log文件夹,里面会创建名位:Logs_20150116.txt;Logs_20150116.txt1;Logs_20150116.txt2的日志文件,每个文件最大为10M,不设文件数目上限,日期变化后会重新生成新的日志文件。若需要更详细的的配置信息请参看其他博文,本文不做详细介绍

    <?xml version="1.0"?>
    <configuration>
      <configSections>
        <section name="log4net" type="System.Configuration.IgnoreSectionHandler"/>
      </configSections>
      <appSettings>
        <add key="RestServicePort" value="8899"/>
      </appSettings>
    
      <log4net>
        <!--配置日志的级别,低于此级别的就不写到日志里面去OFF、FATAL、ERROR, WARN, INFO, DEBUG, ALL-->
        <root>
          <level value="DEBUG" />
          <appender-ref ref="LogFileAppender" />
          <appender-ref ref="ConsoleAppender" />
        </root>
        <logger name="WebLogger">
          <level value="ERROR" />
        </logger>
        <!--输出到文件-->
        <appender name="LogFileAppender" type="log4net.Appender.RollingFileAppender,log4net">
          <param name="File" value="Log/" />
          <param name="AppendToFile" value="true" />
          <!-- 切割最多文件数 -1表示不限制产生日志文件数-->
          <param name="MaxSizeRollBackups" value="-1"/>
          <!-- 每个文件的大小限制  -->
          <param name="MaximumFileSize" value="10MB"/>
          <!-- RollingStyle Composite 综合  Size 按大小  Date 按时间 -->
          <param name="RollingStyle" value="Composite" />
          <param name="DatePattern" value="&quot;Logs_&quot;yyyyMMdd&quot;.txt&quot;" />
          <param name="StaticLogFileName" value="false" />
          <layout type="log4net.Layout.PatternLayout,log4net">
            <param name="Header" value="&#xD;&#xA;----------------------application startup--------------------------&#xD;&#xA;" />
            <param name="Footer" value="&#xD;&#xA; ----------------------application shutdown--------------------------&#xD;&#xA;" />
            <param name="ConversionPattern" value="%d ThreadId[%t] %-5p %c - (Line:%line)  %m%n" />
          </layout>
          <filter type="log4net.Filter.LevelRangeFilter">
            <param name="LevelMin" value="ALL" />
            <param name="LevelMax" value="OFF" />
          </filter>
        </appender>
        <!--输出控制台-->
        <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender,log4net">
          <layout type="log4net.Layout.PatternLayout,log4net">
            <param name="ConversionPattern" value="%d [%t] %-5p %c - (%line) %m%n" />
          </layout>
        </appender>
      </log4net>
    
      <startup>
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
      </startup>
    </configuration>
    View Code

    5. 配置可执行项目的AssemblyInfo.cs文件,以便让log4net的配置信息让所有dll找到。在可执行项目的AssemblyInfo.cs文件中添加如下代码中的最后一行

    using System.Reflection;
    using System.Runtime.CompilerServices;
    using System.Runtime.InteropServices;
    
    // General Information about an assembly is controlled through the following 
    // set of attributes. Change these attribute values to modify the information
    // associated with an assembly.
    [assembly: AssemblyTitle("***CentralServiceStartEngine")]
    [assembly: AssemblyDescription("")]
    [assembly: AssemblyConfiguration("")]
    [assembly: AssemblyCompany("IGT Technology Development (Beijing) Co., Ltd.")]
    [assembly: AssemblyProduct("***CentralServiceStartEngine")]
    [assembly: AssemblyCopyright("Copyright ©***, Ltd. 2014")]
    [assembly: AssemblyTrademark("")]
    [assembly: AssemblyCulture("")]
    
    // Setting ComVisible to false makes the types in this assembly not visible 
    // to COM components.  If you need to access a type in this assembly from 
    // COM, set the ComVisible attribute to true on that type.
    [assembly: ComVisible(false)]
    
    // The following GUID is for the ID of the typelib if this project is exposed to COM
    [assembly: Guid("7c36bff0-c***-4f43-8be8-3781390c35c7")]
    
    // Version information for an assembly consists of the following four values:
    //
    //      Major Version
    //      Minor Version 
    //      Build Number
    //      Revision
    //
    // You can specify all the values or you can default the Build and Revision Numbers 
    // by using the '*' as shown below:
    // [assembly: AssemblyVersion("1.0.*")]
    [assembly: AssemblyVersion("1.0.0.0")]
    [assembly: AssemblyFileVersion("1.0.0.0")]
    
    [assembly: log4net.Config.XmlConfigurator(Watch = true)]
    View Code

    6.项目中使用Log4net。把log4net.dll(无需log4net.xml)放在整个项目的Lib工具库里,在需要写日志的项目中引用此log4net.dll文件,首先创建Logger,然后直接写日志即可。如下代码:

    using System;
    using System.Collections.Generic;
    using System.Configuration;
    using System.Text;
    using log4net;
    
    namespace ***.***.***
    {
        public static class CentralServiceEngine
        {
            //CentralServiceEngine将会在日志中体现,为的是更快定位问题
            private static ILog _log = LogManager.GetLogger(typeof (CentralServiceEngine));
    
            public static void StartService()
            {
                _log.Info("In OnStart IPSCentralService.");
                _log.Info("Info");
                _log.Debug("Debug");
                _log.Warn("Warn");
                _log.Error("ERROR");
                _log.Fatal("Fatal");
            }
    
            public static void StopService()
            {
                _log.Info("In onStop IPSCentralService.");
            }
        }
    }
    View Code

    Build代码若出现找不到log4net命名空间或程序集的错误,则修改下项目的Target Framework(目标框架,在项目->右键属相->Application页签中),从.NET Framework 4 Client Profile 变为.NET Framework 4。

    以上代码中会有带*号的内容,目的是不想把自己的内容公开,用时请替换为你的真实数据。

    此博文仅为能快速搭建写日志的平台,有问题随时交流,错误之处欢迎批评指正。

  • 相关阅读:
    Python全栈开发之路 【第十八篇】:Ajax技术
    Python全栈开发之路 【第十七篇】:jQuery的位置属性、事件及案例
    Python全栈开发之路 【第十六篇】:jQuey的动画效果、属性操作、文档操作、input的value
    Burp Suite安装&环境配置&启动&浏览器设置代理
    git个人使用总结
    Windows下创建.gitgnore文件
    git个人使用总结(界面版)
    测试左移之代码评审
    Java自动内存管理机制
    【海盗派测试分析MFQ&PPDCS】读书笔记
  • 原文地址:https://www.cnblogs.com/zhengshuangliang/p/4227973.html
Copyright © 2011-2022 走看看