ASP.NET Core 使用日志组件

本文主要介绍在ASP.NET Core中使用两种日志组件

  • Logging:Flexible & free open-source logging for .NET
  • Log4Net: Apache log4net框架在Microsoft .NET平台的实现

一 使用ASP.NET Core本身自带了轻量级的日志记录日志框架Logging

appsettings.json中对Logging的配置:

{
  "Logging": {
    "IncludeScopes": false,
    "LogLevel": {
      "Default": "Warning"
    }
  }
}

Logging的使用

    public class HomeController : Controller
    {
       
        private readonly ILogger _logger;
        public HomeController(ILogger<HomeController> logger)
        {
            _logger = logger;
        }
        public IActionResult Index()
        {
            _logger.LogError("logger记录错误");
            return View();
        }
    }

错误将打印在控制台


image.png

二使用第三方日志组件(再此使用Log4Net)

ASP.NET Core 2.0已经可以使用Log4Net,安装Nuget包,我安装的是log4net 2.08

log4net.config
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <!-- This section contains the log4net configuration settings -->
  <log4net debug="true">
    <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
      <file value="logs\AT" />
      <!--日期的格式,每天换一个文件记录,如不设置则永远只记录一天的日志,需设置-->
      <datePattern value="_yyyyMMdd'.log'" />
      <!--是否追加到文件,默认为true,通常无需设置-->
      <appendToFile value="true" />
      <rollingStyle value="Date" />
      <maxSizeRollBackups value="10" />
      <maximumFileSize value="10MB" />
      <!--StaticLogFileName的值如果为true,则当前日志文件(相对于历史日志文件而言)的文件名只取File参数。如果为false,则文件名取File+DatePattern。-->
      <staticLogFileName value="false" />
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%d [%t] %-5p %c - %m%n" />
        <param name="Header" value=" ----------------------Header-------------------------&#xD;&#xA;" />
        <param name="Footer" value=" ----------------------footer--------------------------&#xD;&#xA;" />
      </layout>
    </appender>
    <root>
      <level value="ALL" />
      <appender-ref ref="RollingLogFileAppender" />
    </root>
  </log4net>
</configuration>
修改启动类
        public static ILoggerRepository Repository;//log4net
        public Startup(IConfiguration configuration)
        {
            Configuration = configuration;
            Repository = LogManager.CreateRepository("NETCoreRepository");
            XmlConfigurator.Configure(Repository, new FileInfo("log4net.config"));
        }
在控制器中调用Log4Net
       private ILog log = LogManager.GetLogger(Startup.Repository.Name, typeof(HomeController));
        private readonly ILogger _logger;
        public HomeController(ILogger<HomeController> logger)
        {
            _logger = logger;
        }
        public IActionResult Index()
        {
            _logger.LogError("logger记录错误");
            log.Error("log4net记录错误");
            return View();
        }
结果:
image.png
image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 这次年假从2/9-2/21日,期间有差不多12天时间,除去走亲访友、陪家人等环节,可以得出来大概7天可利用时间,打...
    Xinsama阅读 1,693评论 0 0
  • 于我而言,一个团队是否优秀,不在于平日里是否讲话,是否活跃热闹,一个团队,正因为有了不同性格的人,彼此做自己,尽情...
    demioooo阅读 1,787评论 0 1
  • 年轻时总以为有缘千里,事隔经年,才明白所谓的缘分,不过是心与心的倾情奔赴。
    阑意阅读 1,117评论 0 0
  • 秋雨淋漓的午后,能够安静的写几个字,内心觉得无比的富足和轻盈。 每一天,每一件事情的发生,都是一场修行...
    梅学堂阅读 4,320评论 0 0
  • 01 最近读了一些书籍,阅了很多文字,学习了一些笔记,参考了一些文章。 开启输入模式以来,总想着应该有所输出,想随...
    MaxTZ阅读 3,544评论 0 2

友情链接更多精彩内容