第一步 安装

通过NuGet直接搜索进行安装安装log4net

第二步 编写log4net配置参数

1.添加 log4net.config 文件并更改属性

2.编写 log4net.config

<?xml version="1.0" encoding="utf-8"?>
<log4net>
	<!-- Define some output appenders -->
	<appender name="rollingAppender" type="log4net.Appender.RollingFileAppender">
		<!--    value="logs/info.log"-->
		<file value="logs/" />
		<!--追加日志内容-->
		<appendToFile value="true" />

		<!--防止多线程时不能写Log,官方说线程非安全-->
		<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />

		<!--可以为:Once|Size|Date|Composite-->
		<!--Composite为Size和Date的组合-->
		<rollingStyle value="Composite" />

		<!--当备份文件时,为文件名加的后缀-->
		<datePattern value="yyyyMMdd/yyyy-MM-dd HH'时.log'" />

		<!--日志最大个数,都是最新的-->
		<!--rollingStyle节点为Size时,只能有value个日志-->
		<!--rollingStyle节点为Composite时,每天有value个日志-->
		<maxSizeRollBackups value="20" />

		<!--可用的单位:KB|MB|GB-->
		<maximumFileSize value="5MB" />

		<!--置为true,当前最新日志文件名永远为file节中的名字-->
		<staticLogFileName value="false" />

		<layout type="log4net.Layout.PatternLayout">
			<!--输出格式-->
			<conversionPattern value="%date [%-5level][Thread:%thread]%message Line:%l %n"/>
		</layout>
	</appender>
	<!--定义输出到控制台命令行中-->
	<appender name="ConsoleAppender" type="log4net.Appender.ColoredConsoleAppender">
		<mapping>
			<level value="ALL"/>
			<foreColor value="White"/>
			<backColor value="Red, HighIntensity"/>
		</mapping>
		<layout type="log4net.Layout.PatternLayout">
			<conversionPattern value="%date [%-5level][Thread:%thread]%message Line:%l %n"/>
		</layout>
	</appender>
	<root>

		<!--控制级别,由低到高: ALL|DEBUG|INFO|WARN|ERROR|FATAL|OFF-->
		<!--OFF:0-->
		<!--FATAL:FATAL-->
		<!--ERROR: ERROR,FATAL-->
		<!--WARN: WARN,ERROR,FATAL-->
		<!--INFO: INFO,WARN,ERROR,FATAL-->
		<!--DEBUG: INFO,WARN,ERROR,FATAL-->
		<!--ALL: DEBUG,INFO,WARN,ERROR,FATAL-->

		<level value="ALL"/>
		<!--使用上面配置的那个规则,ref指定上面的规则名称-->
		<appender-ref ref="rollingAppender" />
		<appender-ref ref="ConsoleAppender" />
	</root>
</log4net>

第三步 构建

builder.Logging.AddLog4Net("Configs/log4net.config");

 

第四步 依赖注入、使用

@inject ILogger<Add> Logger

 Logger.LogInformation("未登录");