0
点赞
收藏
分享

微信扫一扫

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


}
}

 

龙腾一族至尊龙骑

举报

相关推荐

0 条评论