一、简介
Log4net 是 Apache 下一个开放源码的项目,它是Log4j 的一个克隆版。我们可以控制日志信息的输出目的地。Log4net中定义了多种日志信息输出模式。
在做项目的时候令我最头疼的是在程序发布到正式环境之后出现了问题,我们不能调试而且问题很难重新,于是我们需要大量的日志数据来精确的跟踪程序的运行状况。
Log4net就可以帮我来解决这一个难题,对于日志的输出我们不需要人为的去干涉,它可以根据需要将日志输出到控制台,文本文件,windows 日志事件查看器中,包括数据库,邮件等等位置,以便我们快速跟踪程序bug。
二、简单使用
工具:VS2019,win10,web api
1、从NuGet下载log4
2、在Startup.cs增加
//log4net日志
public static ILoggerRepository repository { get; set; }
public Startup(IConfiguration configuration)
{
Configuration = configuration;
//
repository = LogManager.CreateRepository("AprilLog");
XmlConfigurator.Configure(repository, new FileInfo("Config/log4net.config"));
BasicConfigurator.Configure(repository);
}
3、在项目中添加配置文件:log4net.config
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<!-- This section contains the log4net configuration settings -->
<log4net>
<!-- Setup the root category, add the appenders and set the default level -->
<root>
<!-- 日志等级 -->
<level value="ALL" />
<appender-ref ref="RollingLogFileAppender" />
</root>
<!-- Define some output appenders -->
<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
<!--日志文件路径,会自动创建-->
<file value="demoLogs/" />
<!--追加日志内容-->
<appendToFile value="true" />
<!--防止多线程时不能写Log,官方说线程非安全-->
<!--很关键的一句,让日志文件不被占用-->
<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
<!--可以为:Once|Size|Date|Composite-->
<!--Composite为Size和Date的组合-->
<rollingStyle value="Composite" />
<!--当备份文件时,为文件名加的后缀,这里可以作为每一天的日志分别存储不同的文件-->
<datePattern value="yyyyMMdd'.log'" />
<StaticLogFileName value="false"/>
<!--日志最大个数,都是最新的-->
<!--rollingStyle节点为Size时,只能有value个日志-->
<!--rollingStyle节点为Composite时,每天有value个日志-->
<maxSizeRollBackups value="10" />
<!--可用的单位:KB|MB|GB-->
<maximumFileSize value="10MB