Dot-Net
讓 NLog 寫入控制台
我對 NLog 很陌生。我有一個使用 NLog 的 .NET 框架控制台應用程序。我希望配置NLog直接將日誌寫入控制台。我安裝了 NLog 和 NLog.Config NuGet 包,在 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" xsi:schemaLocation="http://www.nlog-project.org/schemas/NLog.xsd NLog.xsd" autoReload="true" throwExceptions="false" internalLogLevel="Off" internalLogFile="c:\temp\nlog-internal.log"> <targets> <target xsi:type="Console" name="String" layout="Layout" footer="Layout" header="Layout" encoding="Encoding" /> </targets> </nlog>然後在 C# 中,以下兩行不會列印到控制台:
var logger = LogManager.GetCurrentClassLogger(); logger.Info("hello");上網查了一下,到現在什麼都沒找到。
在這裡查看官方教程。
您需要添加輸出規則:
<rules> <logger name="*" minlevel="Info" writeTo="console" /> </rules>還要簡化您的控制台目標:
<target name="console" xsi:type="Console" />這裡有很多有用的範例:最有用的 NLog 配置
您也可以從程式碼中進行配置:
var config = new NLog.Config.LoggingConfiguration(); // Targets where to log to: Console var logconsole = new NLog.Targets.ConsoleTarget("logconsole"); // Rules for mapping loggers to targets config.AddRule(LogLevel.Info, LogLevel.Fatal, logconsole); // Apply config NLog.LogManager.Configuration = config;採用:
var logger = NLog.LogManager.GetCurrentClassLogger(); logger.Info("hello");