【发布时间】:2019-05-13 09:34:09
【问题描述】:
我有两个项目 A 和 B,它们都使用 NLog 库。现在我有一个问题:
如果 A 先将 loginfo 写入日志文件,则 B 永远不会记录。如果 B 先将 loginfo 写入日志文件,则 A 永远不会记录。
由于 A 和 B 使用相同的 NLog 库,因此它们使用相同的 Nlog Config,但它们将构建在两个处理器中,这是配置信息。
有人对这个问题有什么好主意吗?
//Set NLog Config by:
//https://github.com/nlog/NLog/wiki/Configuration-API
private static Logger GenerateLogInstance()
{
// Step 1. Create configuration object
var config = new LoggingConfiguration();
// Step 2. Create targets
var fileTarget = new FileTarget()
{
FileName = @"C:\Logs\${shortdate}.log",
Layout = @"${longdate} ${uppercase:${level}} ${message}${onexception:${newline}EXCEPTION\: ${exception:format=ToString}}"
};
//var wrapper = new AsyncTargetWrapper(fileTarget, 5000, AsyncTargetWrapperOverflowAction.Discard);
// Step 3. Define rules
config.AddTarget("myprojectLog", fileTarget);
config.LoggingRules.Add(new NLog.Config.LoggingRule("*", NLog.LogLevel.Trace, fileTarget));
// Step 4. Activate the configuration
var factory = new LogFactory(config);
return factory.GetLogger("myprojectLog");
}
【问题讨论】:
-
您的问题一开始是“处理器”建议线程,但实际上它听起来像是 2 个应用程序。听起来可能有 2 个应用程序没有写入同一个文件,因为它可能会用锁打开文件。