# 配置文件概述 ## 配置文件智能提示 + 方法一:引入Nuget包:NLog.config 和 NLog.Schema + 方法二:下载NLog.xsd文件,并配置 > 下载提示文件 https://nlog-project.org/schemas/NLog.xsd 并放入项目根目录 > 编辑nlog.config文件,在nlog根节点中添加属性: xsi:schemaLocation="http://www.nlog-project.org/schemas/NLog.xsd NLog.xsd" ## 配置文件位置 ### 自动匹配 在程序启动时,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文件 ```csharp NLog.LogManager.Configuration = new NLog.Config.XmlLoggingConfiguration("nlog.config"); ``` + 加载配置文件:从指定字符串 ```csharp var xmlStream = new System.IO.StringReader("*****"); var xmlReader = System.Xml.XmlReader.Create(xmlStream); NLog.LogManager.Configuration = new NLog.Config.XmlLoggingConfiguration(xmlReader, null); ``` + 加载配置文件: Xamarin 资源文件 + 加载配置文件: Xamarin Android, 自动扫描 assets文件夹中的 NLog.config ```csharp LogManager.Configuration = new XmlLoggingConfiguration("assets/someothername.config"); ``` ## 配置文件布局 NLog配置的格式为XML,并且可以嵌入Visual Studio项目配置文件(app.config或web.config)中,也可以是独立的XML文件。 + 嵌入到项目配置文件中 ```xml
... ... ``` + 独立XML文件: **NLog.config** ```xml ... ``` ## 顶级元素 nlog配置有以下顶级元素,其中targets和rules在任何配置中都是必需的;其他为可选项,在高级方案中很有用。 + targets :定义日志目标/输出 + rules :定义日志路由规则 + extensions :从* .dll文件加载NLog扩展程序集 + include :包括外部配置文件 + variable :设置配置变量 最简单的配置:一个target 和 一个rule