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" ?>
"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">
  
  
    
    
    "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}" />

    
    "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}" />

    
    "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}" />

    
    "logFileSize2" xsi:type="File"
               concurrentWrites="true"
               fileName="${basedir}/logs/log.txt"
               maxArchiveFiles="7"
               archiveAbovesize="1024"
               layout="${longdate} ${uppercase:${level}} ${message}" />

    
    "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}" />
    
    "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}}">
      "level == LogLevel.Trace" foregroundColor="DarkGray" />
      "TRACE" foregroundColor="White" backgroundColor="DarkGray" ignoreCase="false"  wholeWords="true"/>
      "DEBUG" foregroundColor="White" backgroundColor="DarkGreen" ignoreCase="false"  wholeWords="true"/>
      "INFO " foregroundColor="White" backgroundColor="DarkCyan" ignoreCase="false"  wholeWords="false"/>
      "WARN " foregroundColor="DarkGray" backgroundColor="Yellow" ignoreCase="false"  wholeWords="false"/>
      "ERROR" foregroundColor="White" backgroundColor="Red" ignoreCase="false"  wholeWords="true"/>
      "FATAL" foregroundColor="White" backgroundColor="Magenta" ignoreCase="false"  wholeWords="true"/>
    
  
  
    
    
    
    
    "*" minlevel="Info" writeTo="logConsole" />
    "*" minlevel="Info" writeTo="logFile" />
    
  

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
    {
        /// 
        /// 日志
        /// 
        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.其他);
        }
   }
}