You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

2.6 KiB

配置文件概述

配置文件智能提示

配置文件位置

自动匹配

在程序启动时NLog会在各种文件中搜索其配置(如下所述)。它加载找到的第一个nlog配置文件按下述默认位置依次查找nlog配置找到第一个搜索结束使用配置全部位置搜索完仍然找不到配置则NLog失败。

对于独立的* .exe应用程序文件搜索如下

  • 标准应用程序配置文件通常为applicationname.exe.config
  • 应用程序目录中的applicationname.exe.nlog
  • 应用程序目录中的NLog.config名称敏感使用docker dotnet core
  • NLog.dll所在目录中的NLog.dll.nlog仅当GAC中未安装NLog时

对于ASP.NET应用程序文件搜索如下

  • 标准Web应用程序文件web.config
  • web.nlog与web.config位于同一目录
  • 应用程序目录中的NLog.config
  • NLog.dll所在目录中的NLog.dll.nlog仅当GAC中未安装NLog时

显式(手动)指定匹配

  • 加载配置文件指定Nlog.config文件

       NLog.LogManager.Configuration = new NLog.Config.XmlLoggingConfiguration("nlog.config");
    
  • 加载配置文件:从指定字符串

        var xmlStream = new System.IO.StringReader("<nlog>*****</nlog>");
        var xmlReader = System.Xml.XmlReader.Create(xmlStream);
        NLog.LogManager.Configuration = new NLog.Config.XmlLoggingConfiguration(xmlReader, null);
    
  • 加载配置文件: Xamarin 资源文件

  • 加载配置文件: Xamarin Android, 自动扫描 assets文件夹中的 NLog.config

    LogManager.Configuration = new XmlLoggingConfiguration("assets/someothername.config");
    

配置文件布局

NLog配置的格式为XML并且可以嵌入Visual Studio项目配置文件app.config或web.config也可以是独立的XML文件。

  • 嵌入到项目配置文件中

    <configuration>
      <configSections>
        <!--添加Nlog配置节-->
        <section name="nlog" type="NLog.Config.ConfigSectionHandler, NLog"/>
      </configSections>
      ...
      <!--NLog配置-->
      <nlog>
      ...
      </nlog>
    </configuration>
    
  • 独立XML文件: NLog.config

    <nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    ...
    </nlog>
    

顶级元素

nlog配置有以下顶级元素,其中targets和rules在任何配置中都是必需的其他为可选项在高级方案中很有用。

  • targets :定义日志目标/输出
  • rules :定义日志路由规则
  • extensions :从* .dll文件加载NLog扩展程序集
  • include :包括外部配置文件
  • variable :设置配置变量

最简单的配置一个target 和 一个rule