【发布时间】:2016-11-26 00:24:02
【问题描述】:
我有以下课程:
private string name;
private Logger logger;
private LogLevel lvl;
private LoggingConfiguration config;
public Logger(string name, string path, string format, LogLevel lvl)
{
this.name = name;
FileTarget fileTarget = new FileTarget();
fileTarget.FileName = path;
fileTarget.Layout = format;
this.lvl = lvl;
LoggingRule rule = new LoggingRule(name, lvl, fileTarget);
config = new LoggingConfiguration();
config.AddTarget(name, fileTarget);
config.LoggingRules.Add(rule);
LogManager.Configuration = config;
logger = LogManager.GetLogger(this.name);
logger.Trace("test");
}
我像这样创建两个不同的记录器:
Logger("log1", "c:\\test\\log1.txt", ${message}, LogLevel.Debug);
Logger("log2", "c:\\test\\log2.txt", ${message}, LogLevel.Debug);
这两个文件都是用字符串 test 创建的。但是当我尝试使用(类方法)记录消息时:
public void Log(string msg)
{
logger = NLog.LogManager.GetLogger(name);
//LogManager.Configuration = config;
//LogManager.Configuration.Reload();
logger.Log(lvl, msg);
}
该消息仅记录在第二个文件中。我做错了什么?
【问题讨论】:
-
您在上面的代码中为两个记录器使用了相同的文件名。
-
这是一个拼写错误,抱歉,我更改了我使用的路径,并且在发布之前没有检查。无论如何,编辑了帖子。谢谢。