.net6 webapi log4net完整配置使用流程

前置:为项目安装如下两个依赖

1.创建文件夹cfgFile

2.创建log4net.Config

cs 复制代码
<?xml version="1.0" encoding="utf-8" ?>
<log4net>
	<appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
		<layout type="log4net.Layout.PatternLayout">
			<conversionPattern value="%date [%thread] %-5level %logger - %message%newline" />
		</layout>
	</appender>

	<appender name="FileAppender" type="log4net.Appender.FileAppender">
		<!--文件地址-->
		<file value="logs/log-file.txt" />
		<!--追加日志内容-->
		<appendToFile value="true" />
		<!--多线程-->
		<lockingModel type="log4net.Appender.FileAppender+MinimalLock"/>
		<layout type="log4net.Layout.PatternLayout">
			<conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
		</layout>
	</appender>

	<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
		<file value="logs/LogFile/Error/" />
		<appendToFile value="true" />
		<rollingStyle value="Composite" />
		<datePattern value="yyyyMMdd'.log'" />
		<maxSizeRollBackups value="20" />
		<maximumFileSize value="3MB" />
		<staticLogFileName value="false" />
		<layout type="log4net.Layout.PatternLayout">
			<conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
		</layout>
		<filter type="log4net.Filter.LevelRangeFilter">
			<levelMin value="ERROR" />
			<levelMax value="FATAL" />
		</filter>
	</appender>

	<appender name="WarnRollingFileAppender" type="log4net.Appender.RollingFileAppender">
		<file value="logs/LogFile/Warn/" />
		<appendToFile value="true" />
		<rollingStyle value="Date" />
		<datePattern value="yyyy-MM-dd'.log'" />
		<encoding value="utf-8" />
		<layout type="log4net.Layout.PatternLayout">
			<conversionPattern value="%newline%date [%thread %-5level] %n -- %m%n" />
		</layout>
		<filter type="log4net.Filter.LevelRangeFilter">
			<levelMin value="WARN" />
			<levelMax value="WARN" />
		</filter>
	</appender>

	<appender name="InfoRollingFileAppender" type="log4net.Appender.RollingFileAppender">
		<file value="logs/LogFile/Info/" />
		<appendToFile value="true" />
		<rollingStyle value="Date" />
		<datePattern value="yyyy-MM-dd'.log'" />
		<layout type="log4net.Layout.PatternLayout">
			<conversionPattern value="%newline%date [%thread %-5level] %n %m%n" />
		</layout>
		<filter type="log4net.Filter.LevelRangeFilter">
			<levelMin value="INFO" />
			<levelMax value="INFO" />
		</filter>
	</appender>

	<root>
		<level value="ALL" />
		<appender-ref ref="ConsoleAppender" />
		<appender-ref ref="FileAppender" />
		<appender-ref ref="RollingLogFileAppender" />
		<appender-ref ref="WarnRollingFileAppender" />
		<appender-ref ref="InfoRollingFileAppender" />
	</root>
</log4net>

3.使用日志

Program.cs->添加配置

cs 复制代码
//日志
builder.Logging.AddLog4Net("CfgFile/log4net.Config");

配置位置tips:

4.通过构造函数注入日志在控制器中

cs 复制代码
//UsersController控制器中
private readonly ILogger<UsersController> _logger;
 public UsersController(ILogger<UsersController> logger)
 {
     _logger = logger;
 }

配置位置tips:

5.使用日志

cs 复制代码
 _logger.LogInformation("这是一个Get请求");

配置位置tips:

6.测试日志是否成功

执行项目

  • 查看bin文件夹下是否多了下面的目录
  • 调用Get命令,查看在输出中是否有刚才那段日志

ok,日志配置成功~~

相关推荐
QUST-Learn3D2 分钟前
geometry4Sharp Ray-Mesh求交 判断点是否在几何体内部
服务器·前端·数据库
持续升级打怪中17 分钟前
ES6 Promise 完全指南:从入门到精通
前端·javascript·es6
AC赳赳老秦18 分钟前
前端可视化组件开发:DeepSeek辅助Vue/React图表组件编写实战
前端·vue.js·人工智能·react.js·信息可视化·数据分析·deepseek
小白冲鸭22 分钟前
苍穹外卖-前端环境搭建-nginx双击后网页打不开
运维·前端·nginx
wulijuan88866623 分钟前
Web Worker
前端·javascript
深念Y25 分钟前
仿B站项目 前端 3 首页 整体结构
前端·ai·vue·agent·bilibili·首页
IT_陈寒25 分钟前
React 18实战:这5个新特性让我的开发效率提升了40%
前端·人工智能·后端
zxy284722530129 分钟前
利用C#的BotSharp本地部署第一个大模型AI Agent示例(1)
人工智能·c#·对话·ai agent·botsharp
深念Y30 分钟前
仿B站项目 前端 5 首页 标签栏
前端·vue·ai编程·bilibili·标签栏·trae·滚动栏
克里斯蒂亚诺更新36 分钟前
vue3使用pinia替代vuex举例
前端·javascript·vue.js