【发布时间】:2015-09-28 23:34:21
【问题描述】:
我需要为每个类实例编写事件日志以分隔文件。历史上项目使用 NLog 进行日志记录,所以我想尝试使用 NLog 解决这个问题(我找到了类似的主题 Unique log file for each instance of class,但建议使用 log4net)
目前我正在获取这样的记录器实例:
public static Logger GetInstanceLogger(string name, bool init = false)
{
if (!LogManager.Configuration.AllTargets.Any(t => t.Name == name))
{
var target = new FileTarget();
target.Name = name;
target.FileName = string.Format("logs/{0}.${{shortdate}}.log", name);
target.Layout =
"${date:format=dd.MM.yyyy HH\\:mm\\:ss.fff} thread[${threadid}] ${logger} (${level:uppercase=true}): ${message}. ${exception:format=ToString}";
var config = init ? new LoggingConfiguration() : LogManager.Configuration;
config.AddTarget(name, target);
var ruleInfo = new LoggingRule("*", LogLevel.Trace, target);
config.LoggingRules.Add(ruleInfo);
LogManager.Configuration = config;
LogManager.ReconfigExistingLoggers();
}
var logger = LogManager.GetLogger(name);
return logger;
}
现在它正在将相同的日志写入所有文件(我想这是由日志级别引起的)。有没有办法使用 NLog 完成这项任务?
谢谢。
【问题讨论】: