0
点赞
收藏
分享

微信扫一扫

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

笙烛 2022-06-22 阅读 26

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属性,,复制到输出目录---始终复制,生成操作---内容

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

 

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.其他);
}
}
}

 

龙腾一族至尊龙骑

举报

相关推荐

0 条评论