c# - NLog.Targets.DebugTarget 类是如何工作的?
问题描述
以下初始化在调用时产生以下输出而不是实际错误,而不是实际错误ClassLogger.Error("Error message.");
:
public static readonly NLog.Logger ClassLogger = NLog.LogManager.GetCurrentClassLogger();
public static void InitializeLogger(string logfileName)
{
NLog.Common.InternalLogger.LogLevel = NLog.LogLevel.Debug;
NLog.Common.InternalLogger.LogToConsole = true;
NLog.Common.InternalLogger.LogFile = logfileName;
DebugTarget target = new DebugTarget();
target.Layout = "${message}";
NLog.Config.SimpleConfigurator.ConfigureForTargetLogging(target, NLog.LogLevel.Error);
}
//...
ClassLogger.Error("Error message."); //output:
//...
2021-10-13 17:30:40.8757 Debug Targets for ConsoleApplication.Program by level:
2021-10-13 17:30:40.8757 Debug Trace =>
2021-10-13 17:30:40.8757 Debug Debug =>
2021-10-13 17:30:40.8757 Debug Info =>
2021-10-13 17:30:40.8757 Debug Warn =>
2021-10-13 17:30:40.8757 Debug Error =>
2021-10-13 17:30:40.8757 Debug Fatal =>
虽然以下初始化会产生实际的错误消息。
public static void InitializeLogger(string logfileName)
{
var config = new NLog.Config.LoggingConfiguration();
var logfile = new NLog.Targets.FileTarget("logfile") { FileName = logfileName };
var logconsole = new NLog.Targets.ConsoleTarget("logconsole");
config.AddRule(NLog.LogLevel.Info, NLog.LogLevel.Fatal, logconsole);
config.AddRule(NLog.LogLevel.Info, NLog.LogLevel.Fatal, logfile);
NLog.LogManager.Configuration = config;
}
//...
ClassLogger.Error("Error message."); //output:
//...
2021-10-13 17:39:34.0430|ERROR|ConsoleApplication.Program|Error message.
那么当从 C# 代码中使用 Nlog.Logger 初始化时,DebugTarget 类的目的是什么?它应该在哪里使用呢?
解决方案
推荐阅读
- git - 如何在 groovy 中运行 git 过滤器分支
- c# - 从子类中的父类访问设置的最佳方式
- c++ - 如何在 SDL2 中嵌套视口
- filter - 如何使用 COUNT 公式找到唯一条目?
- javascript - 如果我的组件作为 ReactJS 中的儿童道具传递给布局组件,如何访问布局组件中的道具?
- python - Python对象初始化问题
- semantic-ui - 语义中的段转换不起作用
- uwp - 从命令行运行 UWP 应用程序是“仅”显示应用程序的启动屏幕
- c# - 当 Listview Item Value = x 时应用必填字段验证器
- regex - 如何使用正则表达式拆分以数字开头并以单词结尾的单词,反之亦然