我正在使用 Nlog 設置一個測試應用程序,并且希望可以通過代碼編輯配置。我已經正確設置了配置,但是我實際上無法看到任何日志記錄。我不確定這是否是因為我編碼不正確或者我的實施不正確。我沒有看到正在創建的文件,也沒有得到彩色控制臺。感謝任何幫助,因為沒有太多關于編程配置的文檔。using System;using NLog;using NLog.Targets;using NLog.Targets.Wrappers;using NLog.Config;namespace NLogArchitecture{ class ApplicationFramework { public static Logger log = LogManager.GetCurrentClassLogger(); public static int sum = 0; public static void Main() { SetupLoggingConfiguration(); F1(); F2(); F3(); F4(); } public static void F1() { int[] array1 = new int[5] { 1, 2, 3, 4, 5 }; for (int i = 0; i > array1.Length; i++) { sum += array1[i]; } log.Trace("The sum of array1 is: " + sum); } public static void F2() { int sumException = 0; try { sumException = sum / 0; } catch(Exception ex) { log.Error("Invalid operation: " + ex); } } public static void F3() { sum = sum + 3; log.Debug("Consider a different syntax"); } public static void F4() { if (sum > 12) log.Info("The sum has been calculated well"); if (sum <= 10) log.Info("The sum has been calculated incorrectly"); } } }}
1 回答

阿波羅的戰車
TA貢獻1862條經驗 獲得超6個贊
您的問題出在您的 LoggingRule 模式中。NLog 不知道“ConsoleRule”或“FileRule”是什么。由于您使用的是默認值,因此您的記錄器名稱中沒有類似的匹配模式。
var consoleRule = new LoggingRule("ConsoleRule", consoleTarget);
var fileRule = new LoggingRule("FileRule", fileTarget);
將其更改為“*”以匹配所有內容,或為您的記錄器指定一個名稱以匹配規則。
var consoleRule = new LoggingRule("*", consoleTarget);
var fileRule = new LoggingRule("*", fileTarget);
- 1 回答
- 0 關注
- 175 瀏覽
添加回答
舉報
0/150
提交
取消