.NET log4net

68 阅读1分钟

下载依赖

log4net

image.png

Microsoft.Extensions.Logging.Log4Net.AspNetCore

image.png

创建配置文件

创建log4net.Config配置文件,并设置始终复制(编译后会自动加载到项目)

image.png

文件内容:

<?xml version="1.0" encoding="utf-8"?>
<log4net>
	<!-- 控制台日志配置 -->
	<appender name="Console" type="log4net.Appender.ConsoleAppender">
		<!-- 日志输出格式 -->
		<layout type="log4net.Layout.PatternLayout">
			<conversionPattern value="%5level [%thread] (%file:%line) - %message%newline" />
		</layout>
	</appender>

	<!-- 文件存储日志配置 -->
	<appender name="RollingFile" type="log4net.Appender.RollingFileAppender">
		<!-- 保存文件的名称 -->
		<file value="Z:\.net_log\log.txt" />
		<appendToFile value="true" />
		<!-- 文件的编码方式 -->
		<param name="Encoding" value="UTF-8"/>
		<!-- 每个文件的大小 -->
		<maximumFileSize value="100KB" />
		<!-- 保存文件数量 -->
		<maxSizeRollBackups value="2" />
		<!-- 日志输出格式 -->
		<layout type="log4net.Layout.PatternLayout">
			<conversionPattern value="%level %thread %logger - %message%newline" />
		</layout>
	</appender>

	<root>
		<level value="ALL" />
		<appender-ref ref="Console" />
		<appender-ref ref="RollingFile" />
	</root>
</log4net>

开启日志

image.png

// 引入配置文件
builder.Logging.AddLog4Net("CfgFile/log4net.Config");
// 设置记录级别
builder.Logging.SetMinimumLevel(LogLevel.Information);

测试

项目启动后,自动记录日志

image.png

控制台日志与文本日志

image.png

手动添加日志

image.png

image.png

private readonly ILogger<HomeController> _logger;

public HomeController(ILogger<HomeController> logger)
{
    _logger = logger;
    _logger.LogInformation($"Info:{this.GetType().FullName}被构造");
    _logger.LogError($"Err:{this.GetType().FullName}被构造");
    _logger.LogDebug($"Debug:{this.GetType().FullName}被构造");
    _logger.LogWarning($"Warning:{this.GetType().FullName}被构造");
}

参考

log4net的配置和简单使用 - 知乎 (zhihu.com)

非常完善的Log4net详细说明 - 简书 (jianshu.com)