此文轉自: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"); //錯誤日志
4.附上我的項目文件截圖


