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