.Net Core WebApi 中集成Log4Net 日志记录

1.安装Log4Net的 NuGet 包:

安装时只需要安装这一个Nuget包即可 其它依赖的包会自动安装到项目。
安装命令:insatll-package Microsoft.Extensions.Logging.Log4Net.AspNetCore 3.0.0 (也可用NuGet管理器安装)!

2.Log4Net的配置文件的内容:

<?xml version="1.0" encoding="utf-8" ?>
<log4net>

  <!-- 日志的等级,它们由高到底分别为: OFF > FATAL > ERROR > WARN > INFO > DEBUG > ALL -->
  <appender name="infoAppender" type="log4net.Appender.RollingFileAppender">
    <param name="File" value="Logs\Info\info.log" />
    <param name="AppendToFile" value="true" />
    <param name="MaxFileSize" value="10240" />
    <param name="MaxSizeRollBackups" value="100" />
    <param name="PreserveLogFileNameExtension" value="true" />
    <param name="StaticLogFileName" value="false" />
    <param name="DatePattern" value="yyyyMMdd" />
    <param name="RollingStyle" value="Date" />
    <layout type="log4net.Layout.PatternLayout">
      <conversionPattern value="%date [%thread] %-5level %logger - %message%newline" />
    </layout>
    <filter type="log4net.Filter.LevelRangeFilter">
      <param name="LevelMin" value="INFO" />
      <param name="LevelMax" value="INFO" />
    </filter>
  </appender>

  <appender name="debugAppender" type="log4net.Appender.RollingFileAppender">
    <param name="File" value="Logs\Debug\debug.log" />
    <param name="AppendToFile" value="true" />
    <param name="MaxFileSize" value="10240" />
    <param name="MaxSizeRollBackups" value="100" />
    <param name="PreserveLogFileNameExtension" value="true" />
    <param name="StaticLogFileName" value="false" />
    <param name="DatePattern" value="yyyyMMdd" />
    <param name="RollingStyle" value="Date" />
    <layout type="log4net.Layout.PatternLayout">
      <conversionPattern value="%date [%thread] %-5level %logger - %message%newline" />
    </layout>
    <filter type="log4net.Filter.LevelRangeFilter">
      <param name="LevelMin" value="DEBUG" />
      <param name="LevelMax" value="DEBUG" />
    </filter>
  </appender>

  <appender name="errorAppender" type="log4net.Appender.RollingFileAppender">
    <param name="File" value="Logs\Error\Err.log" />
    <param name="AppendToFile" value="true" />
    <param name="MaxFileSize" value="10240" />
    <param name="MaxSizeRollBackups" value="100" />
    <param name="PreserveLogFileNameExtension" value="true" />
    <param name="StaticLogFileName" value="false" />
    <param name="DatePattern" value="yyyyMMdd" />
    <param name="RollingStyle" value="Date" />
    <layout type="log4net.Layout.PatternLayout">
      <conversionPattern value="%date [%thread] %-5level %logger - %message%newline" />
    </layout>
    <filter type="log4net.Filter.LevelRangeFilter">
      <param name="LevelMin" value="ERROR" />
      <param name="LevelMax" value="ERROR" />
    </filter>
  </appender>

  <appender name="warnAppender" type="log4net.Appender.RollingFileAppender">
    <param name="File" value="Logs\Warn\Warn.log" />
    <param name="AppendToFile" value="true" />
    <param name="MaxFileSize" value="10240" />
    <param name="MaxSizeRollBackups" value="100" />
    <param name="PreserveLogFileNameExtension" value="true" />
    <param name="StaticLogFileName" value="false" />
    <param name="DatePattern" value="yyyyMMdd" />
    <param name="RollingStyle" value="Date" />
    <layout type="log4net.Layout.PatternLayout">
      <conversionPattern value="%date [%thread] %-5level %logger - %message%newline" />
    </layout>
    <filter type="log4net.Filter.LevelRangeFilter">
      <param name="LevelMin" value="WARN" />
      <param name="LevelMax" value="WARN" />
    </filter>
  </appender>

  <appender name="fatalAppender" type="log4net.Appender.RollingFileAppender">
    <param name="File" value="Logs\Fatal\Fatal.log" />
    <param name="AppendToFile" value="true" />
    <param name="MaxFileSize" value="10240" />
    <param name="MaxSizeRollBackups" value="100" />
    <param name="PreserveLogFileNameExtension" value="true" />
    <param name="StaticLogFileName" value="false" />
    <param name="DatePattern" value="yyyyMMdd" />
    <param name="RollingStyle" value="Date" />
    <layout type="log4net.Layout.PatternLayout">
      <conversionPattern value="%date [%thread] %-5level %logger - %message%newline" />
    </layout>
    <filter type="log4net.Filter.LevelRangeFilter">
      <param name="LevelMin" value="FATAL" />
      <param name="LevelMax" value="FATAL" />
    </filter>
  </appender>

  <root>
    <level value="ALL" ref="infoAppender" />
    <appender-ref ref="infoAppender" />
    <appender-ref ref="errorAppender" />
    <appender-ref ref="debugAppender" />
    <appender-ref ref="warnAppender" />
    <appender-ref ref="fatalAppender" />
  </root>

</log4net>

3.在Program中注册Log4Get

 public static IHostBuilder CreateHostBuilder(string[] args) =>
            Host.CreateDefaultBuilder(args)
                 .ConfigureLogging(logbuilder =>
                 {
                     logbuilder.AddFilter("System", LogLevel.Warning);
                     logbuilder.AddFilter("Microsoft", LogLevel.Warning);
                     logbuilder.SetMinimumLevel(LogLevel.Warning);
                     logbuilder.AddLog4Net();
                 })
                .ConfigureWebHostDefaults(webBuilder =>
                {
                    webBuilder.UseStartup<Startup>();
                });

4. 在controller中测试

private readonly ILogger<UpdateFilesController> _logger;
        private readonly IUpdateFiles _updateFiles;
        public UpdateFilesController(ILogger<UpdateFilesController> logger,
            IUpdateFiles updateFiles)
        {
            _logger = logger;
            _updateFiles = updateFiles;
        }

        /// <summary>
        /// 获取要更新的版本信息
        /// </summary>
        /// <returns></returns>
        [HttpGet]
        public List<FilesInfo> InspectVersion()
        {
            return _updateFiles.InspectVersion();
        }

        /// <summary>
        /// 获取要更新的全部文件信息
        /// </summary>
        /// <param name="version"></param>
        /// <returns></returns>
        [HttpGet]
        public List<FilesInfo> GetUpdateFiles(long version, bool isforce)
        {
            _logger.LogInformation("测试日志");
            return _updateFiles.GetUpdateFiles(version, isforce);
        }

5.日志记录结果

在这里插入图片描述
可以看到在我们的测试日志就已经记录成功了! 快去实测吧!

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值