需要安装 nuget 包 Microsoft.Extensions.Configuration 、Microsoft.Extensions.Configuration.FileExtensions 、Microsoft.Extensions.Configuration.Json、NLog
using NLog; using NLog.Config; using Microsoft.Extensions.Configuration; namespace ConsoleApp2 {internal class Program{static void Main(string[] args){LogManager.Configuration = new XmlLoggingConfiguration(string.Format("{0}/NLog.config", AppDomain.CurrentDomain.BaseDirectory.ToString()));var logger = NLog.LogManager.GetCurrentClassLogger();logger.Error("打印日志");try{var a = Directory.GetCurrentDirectory();var config = new ConfigurationBuilder().SetBasePath(Directory.GetCurrentDirectory()).AddJsonFile("appsettings.json", true, true).AddJsonFile("appsettings.Development.json", true, true).Build();var baseUrl = config.GetSection("baseUrl").Value;var setting1 = config["compilerOptions:target"];var setting2 = config["compilerOptions:sourceMap"];var setting3 = config.GetSection("exclude").GetSection("1").Value;var setting4 = config.GetSection("user").GetSection("0").GetSection("name").Value;Console.WriteLine($"baseUrl: {baseUrl}");Console.WriteLine($"Setting1: {setting1}");Console.WriteLine($"Setting2: {setting2}");Console.WriteLine($"setting3: {setting3}");Console.WriteLine($"setting4: {setting4}");}catch (Exception ex) {logger.Error(ex.ToString());}}} }
{"compilerOptions": {"noImplicitAny": false,"noEmitOnError": true,"removeComments": false,"sourceMap": true,"target": "es5"},"exclude": ["node_modules","wwwroot"],"baseUrl": "http://baidu.com","user": [{"name": "张三","code": 1},{"name": "李四","code": 2}] }
<?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"autoReload="true"internalLogLevel="Warn"internalLogFile="c:\temp\internal-nlog.txt"><!-- 加载ASP.NET Core插件 --><extensions><add assembly="NLog.Web.AspNetCore"/></extensions><!-- 输出目的地 --><targets><!-- 输出到文件,这个文件记录所有日志 --><target xsi:type="File" name="allfile" fileName="${basedir}/logs/error-${shortdate}.txt"layout="${longdate}|${event-properties:item=EventId.Id}|${logger}|${uppercase:${level}}|${message} ${exception}" /><!-- 另外一个日志记录文件,户口也跳过Microsoft开头相关日志信息 --><target xsi:type="File" name="ownFile-web" fileName="${basedir}/logs/info-${shortdate}.txt"layout="${longdate}|${event-properties:item=EventId.Id}|${logger}|${uppercase:${level}}| ${exception}|url: ${aspnet-request-url}|action: ${aspnet-mvc-action} : ${message} " /><!-- write to the void aka just remove --><target xsi:type="Null" name="blackhole" /></targets><!-- 写入目的地的规则 --><rules><!--全部记录,包括Microsoft开头的相关日志信息--><logger name="*" minlevel="Error" writeTo="allfile" /><!--跳过Microsoft开头的相关日志信息--><logger name="Microsoft.*" minlevel="Trace" writeTo="blackhole" final="true" /><logger name="*" minlevel="Info" writeTo="ownFile-web" /></rules> </nlog>