zoukankan      html  css  js  c++  java
  • .NET Core use NLog

    Nlog 实现了 Microsoft.Extensions.Logging.ILogger。

    首先Nuget下载添加引用:NLog.Extensions.Logging

    在添加NLog的配置文件“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="Log/log.txt" />
        <target name="console" xsi:type="Console" />
      </targets>
    
      <rules>
        <logger name="*" minlevel="Info" writeTo="logfile" />
        <logger name="*" minlevel="Info" writeTo="console" />
      </rules>
    </nlog>

    在:Program 类(我这个是Console程序)修改:

     public static IHostBuilder CreateHostBuilder(string[] args) =>
    
              Host.CreateDefaultBuilder(args).ConfigureLogging(logging =>
              {
                  logging.ClearProviders();
                  logging.AddNLog();
                  logging.SetMinimumLevel(Microsoft.Extensions.Logging.LogLevel.Trace);
              })
             .ConfigureServices((hostContext, services) =>
             {
                 services.AddHostedService<DataService>();
             });
    

      

    在用的地方注入Microsoft.Extensions.Logging.ILogger:

           private Microsoft.Extensions.Logging.ILogger<DataService> _logger;
            public DataService(ILogger<DataService> logger) {
                _logger = logger;
            }
    
            protected  void Test()
            {
             
                    _logger.LogError("test.........");
    

      

    最后会在 Log/log.txt 记录日志输出信息。

    另外可以定义为 NLog.ILogger _logger;

    可惜的是NLog没有NLog.ILogger<T>这种形式!!!!

    也不能直接注入NLog.ILogger,会报 'Unable to resolve service for type 'NLog.ILogger' while attempting to activate 。

    可以这样:

     private readonly Logger _logger;
     public DataService()
           {
            
                _logger = LogManager.GetCurrentClassLogger();
            }
    

      

  • 相关阅读:
    CCS中cmd文件的编写
    makefile与动态链接库案例分析——动态库链接动态库
    LD的-rpath,-rpath-link
    动态库的链接和链接选项-L,-rpath-link,-rpath
    JVM性能调优监控工具jps、jstack、jmap、jhat、jstat、hprof使用详解
    使用插件扩展Docker
    Docker 的插件式设计
    关于Docker目录挂载的总结(转)
    服务器TIME_WAIT和CLOSE_WAIT详解和解决办法
    转:基于Jmeter的MQTT测试插件
  • 原文地址:https://www.cnblogs.com/wgscd/p/13305212.html
Copyright © 2011-2022 走看看