zoukankan      html  css  js  c++  java
  • C# 日志输出工具库—log4net 安装、配置及简单应用

    1、下载和安装

    注意每次安装只是安装到本项目中,换了另一个项目需要再次安装和配置。

    我使用的是Visual Studio 2013 社区版,在tools中找到NuGet包管理。

    image

    搜索log4net并点击安装。

    image

    首先进行下载

    image

    点击确定安装

    image

    安装完成

    image

    当然,也可以用NuGet 的控制台来安装

    image

    百度搜索 net4log NuGet 或者直接打开下面链接:

    NuGet Gallery | log4net 2.0.8 https://www.nuget.org/packages/log4net/2.0.8

    image

    然后在控制台输入安装命令:Install-Package log4net -Version 2.0.8

    image

    2、配置

    以winForm项目为例,需要配置App.config和AssemblyInfo.cs

    image

    2.1 配置 App.config

    原来的app.config中带了一个startup节点,把log4net的配置放到startup前面。

    一共分两部分:configSections 和 log4net。

    image

    以下配置可做参考:

    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
      <configSections>
        <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
      </configSections>
      <!--站点日志配置部分-->
      <log4net>
        <root>
          <!--控制级别,由低到高: ALL|DEBUG|INFO|WARN|ERROR|FATAL|OFF-->
          <!--比如定义级别为INFO,则INFO级别向下的级别,比如DEBUG日志将不会被记录-->
          <!--如果没有定义LEVEL的值,则缺省为DEBUG-->
          <level value="ALL"/>
          <appender-ref ref="RollingFileAppender"/>
        </root>
        <appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
          <!--日志文件名开头-->
          <file value="Log\TestLog4net.txt"/>
          <!--多线程时采用最小锁定-->
          <lockingModel type="log4net.Appender.FileAppender+MinimalLock"/>
          <!--日期的格式,每天换一个文件记录,如不设置则永远只记录一天的日志,需设置-->
          <datePattern value="(yyyyMMdd)"/>
          <!--是否追加到文件,默认为true,通常无需设置-->
          <appendToFile value="true"/>
          <!--变换的形式为日期,这种情况下每天只有一个日志-->
          <!--此时MaxSizeRollBackups和maximumFileSize的节点设置没有意义-->
          <!--<rollingStyle value="Date"/>-->
          <!--变换的形式为日志大小-->
          <!--这种情况下MaxSizeRollBackups和maximumFileSize的节点设置才有意义-->
          <RollingStyle value="Size"/>
          <!--每天记录的日志文件个数,与maximumFileSize配合使用-->
          <MaxSizeRollBackups value="10"/>
          <!--每个日志文件的最大大小-->
          <!--可用的单位:KB|MB|GB-->
          <!--不要使用小数,否则会一直写入当前日志-->
          <maximumFileSize value="100MB"/>
          <!--日志格式-->
          <layout type="log4net.Layout.PatternLayout">
            <conversionPattern value="%date [%t]%p: %m%n"/>
          </layout>
        </appender>
      </log4net> 
      <startup> 
            <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
        </startup>
    </configuration>

    关于log4net配置详细的说明可参考下面文章:

    非常完善的Log4net详细说明 - CSDN博客 https://blog.csdn.net/binnygoal/article/details/79557746

    2.2 配置AssemblyInfo.cs

    只需要添加一行代码:

    [assembly: log4net.Config.XmlConfigurator(ConfigFileExtension = "config", Watch = true)] //配置log4net

    image

    3、简单应用

    首先在文件开头要using log4net;

    然后在按钮控件的相应函数下添加loger的声明语句并调用,需要注意的是,这个logger对象是局部的,函数退出后无需手动销毁。不同函数内调用的logger会输出到同一个txt文件中,即bindebugLogTestLog4net.txt。

    private void button1_Click(object sender, EventArgs e)
            {
                ILog m_log = LogManager.GetLogger("log");
                m_log.Debug("这是一个Debug日志" + 2);
                m_log.Info("这是一个Info日志");
                m_log.Warn("这是一个Warn日志");
                m_log.Error("这是一个Error日志");
                string temp1 = "helloworld";
                m_log.Fatal(temp1);
            }

    image

    本篇仅介绍简单应用,基本能够满足日常调试使用,高级功能后续再讨论。

    4、参考链接

    (1)C# log4net 的配置 - ???笨小孩 - 博客园 https://www.cnblogs.com/weixiaowei/p/8253228.html

    (2)“log4net.Core.LoggerManager”的类型初始值设定项引发异常 - CSDN博客 https://blog.csdn.net/eatonfang/article/details/40622945

    (3)非常完善的Log4net详细说明 - CSDN博客 https://blog.csdn.net/binnygoal/article/details/79557746

  • 相关阅读:
    android提供ToolBar实现划动菜单的陷阱
    style="display"之后不能获取offsetHeight或clientWidth这类测量的值
    onmouseenter与onmouseover
    使用Dom的Range对象处理chrome和IE文本光标位置
    js严格模式“use strict”
    正则表达式lastIndex属性浅析
    IE中的fireEvent和webkit中的dispatchEvent
    readonly=“readonly”与readonly=“true”
    【杂文】
    【洛谷p1015】【一本通p1309】回文数(noip1999)
  • 原文地址:https://www.cnblogs.com/oucsheep/p/9467932.html
Copyright © 2011-2022 走看看