Why
- 因为发现在别的项目和
WebApi
的项目中使用相同的组件存在不同的方法,所以作为记录补充。
How
- 安装基本相同,但是需要额外安装
Microsoft.Extensions.Logging.Log4Net.AspNetCore
。
- 添加文件
log4net.config
,内容为:
<?xml version="1.0" encoding="utf-8"?>
<log4net>
<root>
<level value="ERROR"/>
<level value="WARN"/>
<level value="INFO"/>
<level value="DEBUG"/>
<appender-ref ref="ErrorLog" />
<appender-ref ref="WarnLog" />
<appender-ref ref="InfoLog" />
<appender-ref ref="DebugLog" />
</root>
<appender name="ErrorLog" type="log4net.Appender.RollingFileAppender">
<param name="File" value="Log\Error\"/>
<param name="DatePattern" value="yyyy-MM-dd"/>
<appendToFile value="true"/>
<rollingStyle value="Composite"/>
<staticLogFileName value="false"/>
<maximumFileSize value="200MB"/>
<maxSizeRollBackups value="-1"/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="[%d{HH:mm:ss}]%m%n"/>
</layout>
<filter type="log4net.Filter.LevelRangeFilter">
<param name="LevelMin" value="ERROR" />
<param name="LevelMax" value="ERROR" />
</filter>
</appender>
<appender name="WarnLog" type="log4net.Appender.RollingFileAppender">
<param name="File" value="Log\Warn\"/>
<param name="DatePattern" value="yyyy-MM-dd"/>
<appendToFile value="true"/>
<rollingStyle value="Composite"/>
<staticLogFileName value="false"/>
<maximumFileSize value="200MB"/>
<maxSizeRollBackups value="-1"/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="[%d{HH:mm:ss}]%m%n"/>
</layout>
<filter type="log4net.Filter.LevelRangeFilter">
<param name="LevelMin" value="WARN" />
<param name="LevelMax" value="WARN" />
</filter>
</appender>
<appender name="InfoLog" type="log4net.Appender.RollingFileAppender">
<param name="File" value="Log\Info\"/>
<param name="DatePattern" value="yyyy-MM-dd"/>
<appendToFile value="true"/>
<rollingStyle value="Composite"/>
<staticLogFileName value="false"/>
<maximumFileSize value="200MB"/>
<maxSizeRollBackups value="-1"/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="[%d{HH:mm:ss}]%m%n"/>
</layout>
<filter type="log4net.Filter.LevelRangeFilter">
<param name="LevelMin" value="INFO" />
<param name="LevelMax" value="INFO" />
</filter>
</appender>
<appender name="DebugLog" type="log4net.Appender.RollingFileAppender">
<param name="File" value="Log\Debug\"/>
<param name="DatePattern" value="yyyy-MM-dd"/>
<appendToFile value="true"/>
<rollingStyle value="Composite"/>
<staticLogFileName value="false"/>
<maximumFileSize value="200MB"/>
<maxSizeRollBackups value="-1"/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="[%d{HH:mm:ss}]%m%n"/>
</layout>
<filter type="log4net.Filter.LevelRangeFilter">
<param name="LevelMin" value="DEBUG" />
<param name="LevelMax" value="DEBUG" />
</filter>
</appender>
</log4net>
- 使用注入的方式直接假如服务:
builder.Logging.AddLog4Net("log4net.config");
- 在任意的控制器中使用有两种使用方法:
public HomeController(ILogger<HomeController> log)
{
log.LogInformation("HomeController created");
}
private static ILog _log = log4net.LogManager.GetLogger("InfoLog");
Tips