# 项目中常用的日志组件为 Log4Net,今天记录一下最简单集成 Log4Net 的方法

# 准备工作:

  • 创建 WebAPI 项目,这边使用的 DotNET6
  • 安装 Nuget 包:Microsoft.Extensions.Logging.Log4Net.AspNetCore
  • 添加 Log4net.Config 配置文件
<?xml version="1.0" encoding="utf-8"?>
<log4net>
    <appender name="RollingAppender" type="log4net.Appender.RollingFileAppender">
        <!-- 指定日志文件保存的目录 -->
        <file value="log\"/>
        <!-- 追加日志内容 -->
        <appendToFile value="true"/>
        <!-- 可以为:Once|Size|Date|Composite-->
        <!--Compoosite 为 Size 和 Date 的组合 -->
        <rollingStyle value="Composite"/>
        <!-- 设置为 true,当前最新日志文件名永远为 file 字节中的名字 -->
        <staticLogFileName value="false"/>
        <!-- 当备份文件时,备份文件的名称及后缀名 -->
        <datePattern value="yyyyMMdd'.log'"/>
        <!-- 日志最大个数 -->
        <!--rollingStyle 节点为 Size 时,只能有 value 个日志 -->
        <!--rollingStyle 节点为 Composie 时,每天有 value 个日志 -->
        <maxSizeRollBackups value="20"/>
        <!-- 可用的单位:KB|MB|GB-->
        <maximumFileSize value="5MB"/>
        <filter type="log4net.Filter.LevelRangeFilter">
            <param name="LevelMin" value="ALL"/>
            <param name="LevelMax" value="FATAL"/>
        </filter>
        <layout type="log4net.Layout.PatternLayout">
            <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline"/>
        </layout>
    </appender>
    <root>
        <priority value="ALL"/>
        <level value="ALL"/>
        <appender-ref ref="RollingAppender"/>
    </root>
</log4net>

# 在 DotNET6 配置如下

var builder = WebApplication.CreateBuilder(args);
// 配置日志
builder.Services.AddLogging(log =>
{
    log.AddLog4Net();
    // 默认的配置文件路径是在根目录,且文件名为 Log4Net.Config
    // 如果文件路径或名称有变化,需要重新设置其路径或名称
    // 比如在项目根目录下创建一个名为 config 的文件夹,将 Log4Net.Config 文件移入其中,并改名为 log.config
    // 则需要使用下面的代码来进行配置
    //log.AddLog4Net(new Log4NetProviderOptions()
    //{
    //    Log4NetConfigFileName = "config/log.config",
    //    Watch = true
    //});
});

# 接下来就可以在控制器或者接口实现去使用构造函数注入了

// 控制器内使用
private ILogger<FileController> _logger;
public FileController(ILogger<FileController> logger)
{
    _logger = logger;
    _logger.LogError("This is FileController Log");
}

# 运行即可看到项目生成目录多了一个 log 文件夹以及日志文件

更新于 阅读次数

请我喝茶~( ̄▽ ̄)~*

Tianci 微信支付

微信支付

Tianci 支付宝

支付宝