【发布时间】:2018-11-29 23:45:59
【问题描述】:
我是 Nlog 的新手,所以我的问题可能很简单。但是我无法让它工作。 问题: 我的应用程序为几个客户做了一些事情。我想为每个客户提供单独的日志文件。所有配置都必须以编程方式完成。 目前我有:
private static Logger InitialiseLog(Target target, string customerName)
{
var loggerName = customerName == null? "globalLog" : customerName;
var config = LogManager.Configuration ?? new LoggingConfiguration();
config.AddTarget("eventlog", target);
var rule = new LoggingRule("*", LogLevel.Debug, target);
config.LoggingRules.Add(rule);
LogManager.Configuration = config;
Logger _logger;
_logger = LogManager.GetLogger(loggerName);
return _logger;
}
调用者:
var target =
new FileTarget
{
FileName = customerName + ".log",
Layout = "${longdate}|${level:uppercase=true}|${logger}|${message}${exception}"
};
return InitialiseLog(target, customerName);
它可以工作,但为每个客户日志文件写入相同的内容。 我想将单个信息写入特定文件,所以我将规则更改为:
var rule = new LoggingRule(loggerName, ...
但它没有用,什么都没有写。 我的目的是实现这样的目标: LogManager.GetLogger("Customer1"); -> 它只写入 Customer1.log 文件 LogManager.GetLogger("globalLog"); -> 它只写入 globalLog.log 文件
我做错了什么?
【问题讨论】:
-
可能是customerName有一个空字符串?