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文件中,即bin\debug\Log\TestLog4net.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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM