此文转自:https://www.cnblogs.com/NetCode-chengyb/articles/12496811.html:置于最顶表示感激之情。
概述
log4net是 Apache Software Foundation 的 Apache Logging Services 项目的一部分。Logging Services项目旨在提供跨语言的日志记录服务,以进行应用程序调试和审核。在本文中将在.NET Core3.1下配置Log4net,实现项目的日志记录。
Log4net官方地址:http://logging.apache.org/log4net/ ,有需要可以自行查看。
Log4net在ASP.NET Core中的使用示例
1.引入Nuget包
tip:只需引入图中其中一个即可,第二个包 Microsoft.Extensions.Logging.Log4Net.AspNetCore 为Log4Net的NetCore扩展包
2.添加Log4Net.config配置文件
<?xml version="1.0" encoding="utf-8"?> <configuration> <!-- This section contains the log4net configuration settings --> <log4net> <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender"> <file value="Log/" /> <appendToFile value="true" /> <rollingStyle value="Composite" /> <staticLogFileName value="false" /> <datePattern value="yyyy-MM-dd'.log'" /> <maxSizeRollBackups value="10" /> <maximumFileSize value="10MB" /> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%date [%thread] %-5level %message%newline" /> </layout> </appender> <!-- Setup the root category, add the appenders and set the default level --> <root> <level value="ALL" /> <appender-ref ref="RollingLogFileAppender" /> </root> </log4net> </configuration>
tip:config文件需放置于项目根目录下,否则不起作用
3.添加Log4Net帮助类
/// <summary> /// 日志帮助类 /// </summary> public class LogHelper { private static readonly ILog logger; static LogHelper() { if (logger == null) { var repository = LogManager.CreateRepository("NETCoreRepository"); XmlConfigurator.Configure(repository, new FileInfo("log4net.config")); logger = LogManager.GetLogger(repository.Name, "InfoLogger"); } } /// <summary> /// 普通日志 /// </summary> /// <param name="message"></param> /// <param name="exception"></param> public static void Info(string message, Exception exception = null) { if (exception == null) logger.Info(message); else logger.Info(message, exception); } /// <summary> /// 告警日志 /// </summary> /// <param name="message"></param> /// <param name="exception"></param> public static void Warn(string message, Exception exception = null) { if (exception == null) logger.Warn(message); else logger.Warn(message, exception); } /// <summary> /// 错误日志 /// </summary> /// <param name="message"></param> /// <param name="exception"></param> public static void Error(string message, Exception exception = null) { if (exception == null) logger.Error(message); else logger.Error(message, exception); } }
4.使用
你只需要在项目中任意地方,通过以下代码调用即可:
- LogHelper.Info("test Info log"); //普通日志
- LogHelper.Warn("test Warn log"); //告警日志
- LogHelper.Error("test Error log"); //错误日志