Log4Net相信大家都很熟悉了,算是比较主流和著名的日志组件了。
最佳实践
在项目中添加组件包
Install-Package log4net
添加log4net.config文件
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<p name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
</configSections>
<log4net debug="false">
<appender name="info" type="log4net.Appender.RollingFileAppender,log4net">
<param name="File" value="log4net/info/" />
<param name="AppendToFile" value="true" />
<param name="MaxSizeRollBackups" value="-1"/>
<param name="MaximumFileSize" value="5MB"/>
<param name="RollingStyle" value="Composite" />
<param name="DatePattern" value="yyyyMMdd\\HH".log"" />
<param name="StaticLogFileName" value="false" />
<layout type="log4net.Layout.PatternLayout,log4net">
<param name="ConversionPattern" value="%n
{
"system": "Meowv.Blog",
"datetime": "%d",
"description": "%m",
"level": "%p",
"info": "%exception"
}" />
</layout>
<filter type="log4net.Filter.LevelRangeFilter">
<levelMin value="INFO" />
<levelMax value="INFO" />
</filter>
</appender>
<appender name="error" type="log4net.Appender.RollingFileAppender,log4net">
<param name="File" value="log4net/error/" />
<param name="AppendToFile" value="true" />
<param name="MaxSizeRollBackups" value="-1"/>
<param name="MaximumFileSize" value="5MB"/>
<param name="RollingStyle" value="Composite" />
<param name="DatePattern" value="yyyyMMdd\\HH".log"" />
<param name="StaticLogFileName" value="false" />
<layout type="log4net.Layout.PatternLayout,log4net">
<param name="ConversionPattern" value="%n
{
"system": "Meowv.Blog",
"datetime": "%d",
"description": "%m",
"level": "%p",
"info": "%exception"
}" />
</layout>
<filter type="log4net.Filter.LevelRangeFilter">
<levelMin value="ERROR" />
<levelMax value="ERROR" />
</filter>
</appender>
<root>
<level value="ALL"></level>
<appender-ref ref="info"/>
<appender-ref ref="error"/>
</root>
</log4net>
</configuration>
控制台项目
using log4net;
using log4net.Config;
using System;
using System.IO;
using System.Reflection;
namespace ConsoleAppDemo
{
class Program
{
static void Main(string[] args)
{
var log4netRepository = LogManager.GetRepository(Assembly.GetEntryAssembly());
XmlConfigurator.Configure(log4netRepository, new FileInfo("log4net.config"));
ILog log = LogManager.GetLogger(log4netRepository.Name, "NETCorelog4net");
log.Info("NETCorelog4net log");
log.Info("test log");
log.Error("error");
log.Info("linezero");
Console.ReadKey();
}
}
}