首页 > 其他分享 >NLog.Extensions.Logging 使用 (3)

NLog.Extensions.Logging 使用 (3)

时间:2023-12-21 09:14:34浏览次数:23  
标签:Logging NLog ILogger services Extensions logger

GitHub链接

NLog.Extensions.Logging makes it possible to use NLog with Microsoft ILogger abstraction and dependency injection.

NLog.Extensions.Logging主要是为了把NLog通过依赖注入注册到容器中,使用者通过构造器注入获取ILogger<T>

上一篇文章讲的NLog没有结合依赖注入

1、安装Nuget包:NLog.Extensions.Logging

2、添加配置文档nlog.config,并设置该文档属性“较新则复制”

<?xml version="1.0" encoding="utf-8" ?>
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

    <targets>
        <target name="logfile" xsi:type="File" fileName="file.txt" />
        <target name="logconsole" xsi:type="Console" />
    </targets>

    <rules>
        <logger name="*" minlevel="Info" writeTo="logconsole" />
        <logger name="*" minlevel="Debug" writeTo="logfile" />
    </rules>
</nlog>

3、创建Test类,通过构造函数注入ILogger<Test>

 public class Test
 {
    private readonly ILogger<Test> logger;

     public Test(ILogger<Test> logger)//通过DI注入
     {
         this.logger = logger;
     }

     public void Run()
     {
         logger.LogDebug("准备登录");
         logger.LogWarning("校验失败");
         logger.LogWarning("再次校验失败");
         logger.LogError("多次登录失败");

         try
         {
             string str = null;
             str.Substring(0, 2);
         }
         catch (Exception ex)
         {
             logger.LogCritical(ex, "critical");//可以输出异常信息
         }
     }
 }

4、Main函数

  static void Main(string[] args)
  {
    ServiceCollection services = new ServiceCollection();
      services.AddLogging(loggingbuilder=> loggingbuilder.AddNLog());//配置NLogProvider到Logging中并注册到容器
      services.AddScoped<Test>();
      using (var scope = services.BuildServiceProvider())
      {
        var test=  scope.GetRequiredService<Test>();
          test.Run();
      }
  }

运行结果:

 运行目录下生成file日志文件

 

标签:Logging,NLog,ILogger,services,Extensions,logger
From: https://www.cnblogs.com/luohualiushui1173/p/17917085.html

相关文章

  • NLog使用(2)
    .Net没有内置的文本日志提供者,第三方有Log4Net、NLog、Serilog等,这篇文章主要讲解Nlog使用Nloggithub链接1、安装Nuget包:NLog2、配置nlog.config文挡,并设置文件属性“较新则复制”<?xmlversion="1.0"encoding="utf-8"?><nlogxmlns="http://www.nlog-project.org/schema......
  • Logging简介(1)
    Logging:日志系统,用来记录软件系统,用于异常分析日志级别:Trace<Debug(调试)<Information(信息)<Warning(提醒、警告)<Error(错误)<Critical(关键、生死攸关),可根据实际情况对每一条日志使用不同的级别日志提供者(LoggingProvider):把日志输出到哪里:控制台、文件、数据库、邮箱、短信、微信等......
  • 使用WinSW将jar创建成Windows服务;使用Microsoft.Extensions.Hosting.WindowsServices
    【背景】我们有几个历史产品,需要部署在Windows系统上,产品有jar包,也有.net工程,为了优美的启动服务,思考了两种处理方式。第一种是电脑开机启动,将启动命令设置为快捷键,并将快捷键拷贝到C:\ProgramData\Microsoft\Windows\StartMenu\Programs\Startup目录下,该方式有个缺点,由于ja......
  • django中配置使用日志(logging)
    一、以dict的方式在setting中配置LOGGING={"version":1,#thedictConfigformatversion"disable_existing_loggers":False,#retainthedefaultloggers"formatters":{"standard":{#日志输出格式配置......
  • logging 配置说明
    Java项目中经常会用到 logging包来记录日志,下面记录常见的配置说明。配置通常放在boostrap.yml或application.yml这些配置文件中。1#日志配置2logging:3pattern:4#console:"%msg%n"5#console:"%d{yyyy-MM-ddHH:mm:ss}-%msg%n"6#console:......
  • logback error Logging system failed to initialize using configuration from 'nul
    *[Afterupgradingtheprojectfromspringboot2.3.4to2.7.0,buildfailwithalogback.xml·Issue#32025·spring-projects/spring-boot·GitHub](https://github.com/spring-projects/spring-boot/issues/32025)*[WhyDoesTheLoggingSystemFailToInitial......
  • MySQL哪些操作会记录至Binlog文件?
    参考:MySQL哪些操作会记录至Binlog文件?操作影响行数为0会写Binlog?https://juejin.cn/post/7066724038999015432Row模式下,会记录所有执行成功且返回的影响行数大于0的DDL和DML操作,当UPDATE和DELETE操作的影响行数为0时不会记录操作至Binlog。有如下疑问:mysql数据库没......
  • mysql_repl - 轻便型的MySQL binlog replication tool
    mysql_repl-轻便型的MySQLbinlogreplicationtoolhttps://github.com/hcymysql/mysql_repl/使用场景:从MySQL8.0实时解析binlog并复制到MariaDB,适用于将MySQL8.0迁移至MariaDB不熟悉MySQL主从复制搭建的新手使用原理:把自己伪装成slave,从源master解析binlog并入库targetMySQL端......
  • Python——第五章:logging模块
    filename:文件名format:数据的格式化输出。最终在日志文件中的样子时间-名称-级别-模块:错误信息datefmt:时间的格式level:错误的级别权重,当错误的级别权重大于等于leval的时候才会写入文件importlogginglogging.basicConfig(filename='x1.txt',format='%(asc......
  • Python报错:performance hint: av/logging.pyx:232:5: the GIL to be acquired
     参考:https://stackoverflow.com/questions/77410272/problems-installing-python-av-in-windows-11https://github.com/PyAV-Org/PyAV/issues/1177  ================================  报错信息:C:\Windows.old\Users\chris>pipinstallavDefaultingtouserinstallatio......