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();
        }


    }
}

猜你喜欢

转载自blog.csdn.net/LongtengGensSupreme/article/details/107766171
今日推荐