1、添加NuGet包引用
2、修改Program文件
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder => { webBuilder.UseStartup<Startup>(); })
.ConfigureLogging((context, builder) => { builder.AddLog4Net(); });
3、根目錄下添加log4net配置文件,文件名:log4net.Config
<?xml version="1.0" encoding="utf-8"?>
<log4net>
<!-- Define some output appenders-->
<!--Debug~Warn錯誤級別-->
<appender name="DebugRollingAppender" type="log4net.Appender.RollingFileAppender">
<file value="log\info\debug.log" />
<!--追加日誌內容-->
<appendToFile value="true" />
<!--防止多線程時不能寫Log,官方說線程非安全-->
<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
<!--可以爲:Once|Size|Date|Composite-->
<!--Composite爲Size和Date的組合-->
<rollingStyle value="Composite" />
<!--當備份文件時,爲文件名加後綴-->
<datePattern value="yyyyMMdd.log" />
<!-- 日誌最大個數,都是最新的 -->
<!-- rollingStyle 爲Size時,只能有value個日誌-->
<!-- rollingStyle 爲Composite時,每天有value個日誌-->
<maxSizeRollBackups value="120" />
<!-- 可用的單位:KB|MB|GB -->
<maximumFileSize value="3MB" />
<!-- 設備爲true,當肖最新日誌文件名永遠爲file節中的名字b-->
<staticLogFileName value="true" />
<!-- 輸出級別在INFO和ERROR之間的日誌 -->
<filter type="log4net.Filter.LevelRangeFilter">
<param name="LevelMin" value="DEBUG" />
<param name="levelMax" value="WARN" />
</filter>
<!-- 必須結合起來用,第一個只過濾出WARN,第二個拒絕其它日誌輸出 -->
<!--
<filter type="log4net.Filter.LevelMatchFilter">
<param name="LevelToMatch" value="WARN"/>
</filter>
<filter type="log4net.Filter.DenyAllFilter"/>
-->
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger -%message%newline" />
</layout>
</appender>
<!--Error~Falt級別日誌-->
<appender name="ErrorRollingAppender" type="log4net.Appender.RollingFileAppender" level="ERROR">
<file value="log\error\error.log" />
<!--追加日誌內容-->
<appendToFile value="true" />
<!--防止多線程時不能寫Log,官方說線程非安全-->
<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
<!--可以爲:Once|Size|Date|Composite-->
<!--Composite爲Size和Date的組合-->
<rollingStyle value="Composite" />
<!--當備份文件時,爲文件名加後綴-->
<datePattern value="yyyyMMdd.log" />
<!-- 日誌最大個數,都是最新的 -->
<!-- rollingStyle 爲Size時,只能有value個日誌-->
<!-- rollingStyle 爲Composite時,每天有value個日誌-->
<maxSizeRollBackups value="120" />
<!-- 可用的單位:KB|MB|GB -->
<maximumFileSize value="3MB" />
<!-- 設備爲true,當肖最新日誌文件名永遠爲file節中的名字b-->
<staticLogFileName value="true" />
<!-- 輸出級別在INFO和ERROR之間的日誌 -->
<filter type="log4net.Filter.LevelRangeFilter">
<param name="LevelMin" value="ERROR" />
<param name="levelMax" value="FATAL" />
</filter>
<!-- 必須結合起來用,第一個只過濾出WARN,第二個拒絕其它日誌輸出 -->
<!--
<filter type="log4net.Filter.LevelMatchFilter">
<param name="LevelToMatch" value="WARN"/>
</filter>
<filter type="log4net.Filter.DenyAllFilter"/>
-->
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger -%message%newline" />
</layout>
</appender>
<!-- levels:OFF > FATAL > ERROR > WARN > INFO>DEBUG > ALL -->
<root>
<priority value="ALL" />
<level value="ALL" />
<appender-ref ref="DebugRollingAppender" />
<appender-ref ref="ErrorRollingAppender" />
</root>
</log4net>