• NET LOG日志的使用以及设置文件大小和数量限制关键字caced和date


    NET LOG日志的使用以及设置文件大小和数量限制------关键字---caced和date

    新建控制台项目,选择项目右键属性,选择 “ 管理NuGet程序包(N)... ”,搜索NLog ,添加NLog ,版本4.7.14

    1、新建nlog.config文件,内容如下

    <?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,-->
        <!--输出文件 按天归档,最多存档文件7个,单个文件不超过50M,
        日志文件的大小个数与文件名称有非常密切的关系,archiveFileName日志文件名称是常量的时候,设置archiveAbovesize会根据archiveAbovesize设置的大小进行生成信息的日志文件,
        archiveFileName日志文件名称是时间格式的时候,设置archiveAbovesize会根据archiveAbovesize设置的大小以及日志文件的时间格式来进行生成信息的日志文件,谁先到以水为准,
        例如同一时间内日志文件大小达到archiveAbovesize日式文件设置的大小了,则以为archiveAbovesize为准生成新的文件
        ,如果日志文件大小没有达到,时间变化了,则以时间为准生成新的日志文件,archiveAbovesize="10240",表示日志文件大小设置10kb,即archiveAbovesize="10240"
        ${date:format=yyyy-MM-dd HH_mm_ss}  archiveFileName="${basedir}/logs/${date:format=yyyy-MM-dd HH_mm_ss}.txt"
        ${cached:${date:format=yyyy-MM-dd HH_mm_ss}}    archiveFileName="${basedir}/logs/${cached:${date:format=yyyy-MM-dd HH_mm_ss}}.txt"-->
        <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"
                    archiveAbovesize="10240"
                    layout="${longdate} ${uppercase:${level}} ${message}" />
    
        <!--日志名称时间变量 关键字cached ${cached:${date:format=yyyy-MM-dd HH_mm_ss}}    archiveFileName="${basedir}/logs/${cached:${date:format=yyyy-MM-dd HH_mm_ss}}.txt"-->
        <target name="logFileSize0" xsi:type="File"
                   concurrentWrites="true"
                   fileName="${basedir}/logs/${cached:${date:format=yyyy-MM-dd HH_mm_ss}}.txt"
                   maxArchiveFiles="7"
                   archiveAbovesize="1024"
                   layout="${longdate} ${uppercase:${level}} ${message}" />
    
        <!--日志名称时间变量 ${date:format=yyyy-MM-dd HH_mm_ss}   archiveFileName="${basedir}/logs/${date:format=yyyy-MM-dd HH_mm_ss}.txt"-->
        <target name="logFileSize1" xsi:type="File"
                   concurrentWrites="true"
                   fileName="${basedir}/logs/${date:format=yyyy-MM-dd HH_mm_ss}.txt"
                   maxArchiveFiles="7"
                   archiveAbovesize="1024"
                   layout="${longdate} ${uppercase:${level}} ${message}" />
    
        <!--日志名称固定常量   archiveFileName="log.txt"-->
        <target name="logFileSize2" xsi:type="File"
                   concurrentWrites="true"
                   fileName="${basedir}/logs/log.txt"
                   maxArchiveFiles="7"
                   archiveAbovesize="1024"
                   layout="${longdate} ${uppercase:${level}} ${message}" />
    
        <!--日志名称时间变量 ${date:format=yyyy-MM-dd HH_mm}   archiveFileName="${basedir}/logs/${date:format=yyyy-MM-dd HH_mm}.txt"-->
        <target name="logFileSize" xsi:type="File"
                   concurrentWrites="true"
                   fileName="${basedir}/logs/${date:format=yyyy-MM-dd HH_mm}.txt"
                   maxArchiveFiles="7"
                   archiveAbovesize="10240"
                   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" />
        <!--<logger name="*" minlevel="Info" writeTo="logFileSize" />-->
      </rules>
    </nlog>

    2、设置nlog.config属性,,复制到输出目录---始终复制,生成操作---内容

    3、代码使用

    using log4net;
    using System;
    using System.Collections.Generic;
    using System.Configuration;
    using System.Globalization;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Web;
    using Utils;
    
    namespace ConsoleTest
    {
        internal class Program
        {
            /// <summary>
            /// 日志
            /// </summary>
            private static readonly NLog.Logger _logger = NLog.LogManager.GetCurrentClassLogger();
            static void Main(string[] args)
            {
                try
                {
                    TestEnum();
    
                    #region MyRe测试gion
                    //TestLinqOrderBy();
                    //TestResolveArgs();
                    //TestTestHID();
                    //TestConvert();
                    //TesttWebSocket();
                    #endregion
                    Console.ReadKey();
                }
                catch/*(Exception ex)*/
                {
                    //_logger.Error($"IdWorkerManager,初始化报错,错误信息:{ex.InnerException}");
                }
            }
    
            public static void TestEnum()
            {
                _logger.Info($"测试枚举。。。。");
                string comment = "77777";
                var enumIsDefined = Enum.IsDefined(typeof(EvMSEvaluateBmyyy), "服务条件差");
                if (enumIsDefined)
                {
                    var enumValue = (EvMSEvaluateBmyyy)Enum.Parse(typeof(EvMSEvaluateBmyyy), "服务条件差");
                    comment = comment + "|" + enumValue.GetHashCode() + "|" + "服务条件差";
                    //获取枚举名称字符串
                    var ss= EvMSEvaluateBmyyy.交易核税慢.ToString();
                }
                while (true)
                {
                    _logger.Info($"测试枚举。。。。");
                }
    
                //int a = 1;
                //var senumName = Enum.GetName(typeof(EvMSEvaluateBmyyy), a);
                //Console.WriteLine($"枚举--根据值获取名称:值:{a}------名称:{senumName}");
                //var enumValue = Enum.GetValues(typeof(EvMSEvaluateBmyyy));
                //var enumValue1 = Enum.GetNames(typeof(EvMSEvaluateBmyyy));
                //var enumValue2 = Enum.IsDefined(typeof(EvMSEvaluateBmyyy),2);
                //var enumValue3 = Enum.IsDefined(typeof(EvMSEvaluateBmyyy), "服务条件差");
                //if (enumValue3)
                //{
                //   var dddd= Enum.Parse(typeof(EvMSEvaluateBmyyy), "服务条件差");
                //    var dddd2 =(EvMSEvaluateBmyyy)(dddd);
                //    var dddd3 = dddd2.GetHashCode();
                //    Console.WriteLine();
                //}
                var enumValue4 = Enum.IsDefined(typeof(EvMSEvaluateBmyyy), EvMSEvaluateBmyyy.其他);
            }
       }
    }
  • 相关阅读:
    StandardWrapper ...$$EnhancerByCGLIB$$b9
    Exception in thread "main" java.lang.ClassCastException: $Proxy13
    Mybatis 源码阅读 (一)
    Thread 中yield(), join()
    java 中类型后面三个点的用法
    JAVA 中汉字在不同编码下的字节不同
    Spring FIlterType
    MyBaties学习记录
    MyBaties学习记录Settings参数详解
    JavaScript学习笔记
  • 原文地址:https://www.cnblogs.com/1175429393wljblog/p/16327441.html
Copyright © 2020-2023  润新知