NET LOG日志的使用以及設置文件大小和數量限制


NET LOG日志的使用包括log4net和nlog

1、新建控制台項目ConsoleLog,使用Nuget程序包管理器,添加log4net和nlog

2、配置log4net 

     a、log4net日志設置 設置保存中的文件夾和指定文件數量和大小

     b、App.config中添加 日志的配置信息

     c、根據App.config中添加日志的配置信息初始化log4net日志

     d使用log4net寫日志

App.config文件中添加log4net的配置信息,本文只配置了日志輸出的文件,並對文件的數量做了控制,如下:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <configSections>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
  </configSections>
  <log4net>
    <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
      <file value="Log\Log.txt" />
      <appendToFile value="true" />
      <rollingStyle value="Size" />
      <maxSizeRollBackups value="2" />
      <maximumFileSize value="1KB" />
      <staticLogFileName value="true" />
      <layout type="log4net.Layout.PatternLayout">
        <!--<param name="ConversionPattern" value="%-5p %d [%c] [%l] %m%n" />-->
        <conversionPattern value="%-5level %date [%thread] - %message %newline" />
      </layout>
    </appender>
    <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">      
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date [%thread] %-5level %logger - %message%newline"/>
      </layout>
    </appender>
    <!--日志輸出到Console-->
    <appender name="ColoredConsoleAppender" type="log4net.Appender.ColoredConsoleAppender">
      <mapping>
        <level value="ERROR"/>
        <foreColor value="White"/>
        <backColor value="Red,HighIntensity"/>
      </mapping>
      <mapping>
        <level value="DEBUG"/>
        <backColor value="Green"/>
      </mapping>
      <mapping>
        <level value="Info"/>
        <backColor value="Yellow"/>
      </mapping>
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date [%thread] %-5level %logger - %message%newline"/>
      </layout>
      <filter type="log4net.Filter.LevelRangeFilter">
        <param name="LevelMin" value="Debug"/>
        <param name="LevelMax" value="Fatal"/>
      </filter>
    </appender>
    <root>
      <!--level   all>fatal>error>warn>debug>info>off />-->
      <!--<level value="warn" /> 表示只有warn以上的fatal,error等級才會輸出日志,warn debug info等級不會輸出日志 
      all 所有等級都會輸出日志
      off 所有等級/>-->
      <level value="all" />
      <appender-ref ref="RollingLogFileAppender" />
      <!--<appender-ref ref="ColoredConsoleAppender" />--> 
      <appender-ref ref="ConsoleAppender" />   
    </root>
  </log4net>
  <startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.2" />
  </startup>
</configuration>

 

使用log4net 寫日志 如下:

using System;
using System.Threading;

namespace ConsoleLog
{
    class Program
    {
        static void Main(string[] args)
        {

            Console.WriteLine("測試日志");

            //Console.WriteLine("log4net 測試日志");
            // 注意
            // 
            //log4net日志設置 設置保存中的文件夾和指定文件數量和大小
            // 1、App.config中添加 日志的配置信息
            // 2、根據App.config中添加日志的配置信息初始化log4net日志
            // 3、使用log4net寫日志
            // 

            #region log4net
            //log4net.Config.XmlConfigurator.Configure();
            ////上面的這句話表示從App.config中添加日志的配置信息初始化log4net日志
            ////或者也可以在項目的Properties中的AssemblyInfo.cs添加下面一句話
            ////[assembly: log4net.Config.XmlConfigurator(ConfigFileExtension =".config",Watch =true)]
            ////上面2種方式都是表示從App.config中添加日志的配置信息初始化log4net日志
            //
            log4net.ILog log = log4net.LogManager.GetLogger(typeof(TestLog4net));
            while (true)
            {
                log.Fatal("Fatal log4net 測試日志");
                log.Error("Error log4net 測試日志");
                log.Warn("Warn log4net 測試日志");
                log.Debug("Debug log4net 測試日志");
                log.Info("Info log4net 測試日志");
                Thread.Sleep(TimeSpan.FromSeconds(1));
            }
            #endregion


            Console.ReadLine();
        }


    }
}

 

 

3、配置nlog

     a、nlog日志設置保存中的文件夾和指定文件數量和大小

    b、新建nlog.config文件並添加日志的配置信息 ,nlog.config文件屬性設置,復制到輸出目錄:始終復制 ,生成操作:內容

    c、使用nlog寫日志

nlog.config文件中添加lnlog的配置信息,本文只配置了日志輸出的文件和彩色控制,並對文件的數量做了控制,如下:

<?xml version="1.0" encoding="utf-8"?>
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      autoReload="true" throwExceptions="false"
      internalLogLevel="Warn" internalLogFile="${basedir}/logs/NlogRecords.log">
  <!--Nlog內部日志記錄為Off關閉。除非糾錯,不可以設為Trace否則速度很慢,起碼Debug以上-->
  <targets>
    <!--輸出文件 按天歸檔,最多存檔文件7個,單個文件不超過50M,-->
    <target name="logFile" xsi:type="File"
                concurrentWrites="true"
                fileName="${basedir}/logs/logfile.txt"
                archiveFileName="${basedir}/logs/log.{#}.txt"
                archiveNumbering="Date"
                maxArchiveFiles="7"
                archiveEvery="Day"
                archiveDateFormat="yyyyMMdd"
                layout="${longdate} ${uppercase:${level}} ${message}" />
    <!--輸出彩色控制台 xsi:type="Console"是指定輸出到普通控制台-->
    <target name="logConsole" xsi:type="ColoredConsole"
            useDefaultRowHighlightingRules="false"
            layout="${pad:padding=-5:fixedLength=True:inner=${level:uppercase=true}} : ${longdate} | ${logger} | ${message} ${onexception:inner=${newline}${exception:format=tostring}}">
      <highlight-row condition="level == LogLevel.Trace" foregroundColor="DarkGray" />
      <highlight-word text="TRACE" foregroundColor="White" backgroundColor="DarkGray" ignoreCase="false"  wholeWords="true"/>
      <highlight-word text="DEBUG" foregroundColor="White" backgroundColor="DarkGreen" ignoreCase="false"  wholeWords="true"/>
      <highlight-word text="INFO " foregroundColor="White" backgroundColor="DarkCyan" ignoreCase="false"  wholeWords="false"/>
      <highlight-word text="WARN " foregroundColor="DarkGray" backgroundColor="Yellow" ignoreCase="false"  wholeWords="false"/>
      <highlight-word text="ERROR" foregroundColor="White" backgroundColor="Red" ignoreCase="false"  wholeWords="true"/>
      <highlight-word text="FATAL" foregroundColor="White" backgroundColor="Magenta" ignoreCase="false"  wholeWords="true"/>
    </target>
  </targets>
  <rules>
    <!--注意這里的name="*",如果這里的name=xx了那么在C#的后台.cs文件使用日志的時候必須把xx當做參數來傳遞,否則沒有日志輸出-->
    <!--注意這里的name="*",如果這里的name=xx了那么在C#的后台.cs文件使用日志的時候必須把xx當做參數來傳遞,否則沒有日志輸出-->
    <!--minlevel  all>fatal>error>warn>debug>info>trace>off />-->
    <!--minlevel="Info" 表示只有Info以上的fatal,error才會輸出日志,warn debug info trace不會輸出日志
        all 所有等級都會輸出日志
        off 所有等級都不輸出日志/>-->
    <logger name="*" minlevel="Info" writeTo="logConsole" />
    <logger name="*" minlevel="Info" writeTo="logFile" />
  </rules>
</nlog>

 

使用log4net 寫日志 如下:

using System;
using System.Threading;

namespace ConsoleLog
{
    class Program
    {
        static void Main(string[] args)
        {

            Console.WriteLine("測試日志");

            //Console.WriteLine("log4net 測試日志");
            // 注意
            // 
            //log4net日志設置 設置保存中的文件夾和指定文件數量和大小
            // 1、App.config中添加 日志的配置信息
            // 2、根據App.config中添加日志的配置信息初始化log4net日志
            // 3、使用log4net寫日志
            // 

            #region log4net
            //log4net.Config.XmlConfigurator.Configure();
            ////上面的這句話表示從App.config中添加日志的配置信息初始化log4net日志
            ////或者也可以在項目的Properties中的AssemblyInfo.cs添加下面一句話
            ////[assembly: log4net.Config.XmlConfigurator(ConfigFileExtension =".config",Watch =true)]
            ////上面2種方式都是表示從App.config中添加日志的配置信息初始化log4net日志
            //
            //log4net.ILog log = log4net.LogManager.GetLogger(typeof(TestLog4net));
            //while (true)
            //{
            //    log.Fatal("Fatal log4net 測試日志");
            //    log.Error("Error log4net 測試日志");
            //    log.Warn("Warn log4net 測試日志");
            //    log.Debug("Debug log4net 測試日志");
            //    log.Info("Info log4net 測試日志");
            //    Thread.Sleep(TimeSpan.FromSeconds(1));
            //} 
            #endregion

            Console.WriteLine("nlog 測試日志 ");
            #region NLog    
            // 注意
            //nlog日志設置保存中的文件夾和指定文件數量和大小
            //nlog日志設置
            // 1、新建nlog.config文件並添加日志的配置信息,
            // nlog.config文件屬性設置,復制到輸出目錄:始終復制 ,生成操作:內容
            // 2、使用nlog寫日志

            NLog.Logger log = NLog.LogManager.GetCurrentClassLogger();
            while (true)
            {
                log.Fatal("Fatal nlog 測試日志");
                log.Error("Error nlog 測試日志");
                log.Warn("Warn nlog 測試日志");
                log.Debug("Debug nlog 測試日志");
                log.Info("Info nlog 測試日志");
                log.Trace("Info nlog 測試日志");
                Thread.Sleep(TimeSpan.FromSeconds(1));
            }
            #endregion
            Console.ReadLine();
        }


    }
}

 


免責聲明!

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



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