3
我想在插件中使用NLog並使用配置API來配置它。但是,由於LogManager是靜態的,我怎樣才能做到這一點,而不會干擾正在做同樣事情的其他插件?如何在插件中使用NLog
我看到使用配置API的示例涉及完全替換LogManager.Configuration。我可以嘗試修改現有的配置,但我不確定這是否是線程安全的。
我想在插件中使用NLog並使用配置API來配置它。但是,由於LogManager是靜態的,我怎樣才能做到這一點,而不會干擾正在做同樣事情的其他插件?如何在插件中使用NLog
我看到使用配置API的示例涉及完全替換LogManager.Configuration。我可以嘗試修改現有的配置,但我不確定這是否是線程安全的。
你有沒有嘗試過這樣的事情:
// This could got into a static constructor somewhere in the plugin to make sure it happens early
LoggingConfiguration config = LogManager.Configuration;
ColoredConsoleTarget consoleTarget = new ColoredConsoleTarget();
config.AddTarget("myplugin", consoleTarget);
LoggingRule rule = new LoggingRule("myplugin", LogLevel.Debug, consoleTarget);
config.LoggingRules.Add(rule);
// Whenever my plugin creates a logger it'll obtain it like this
var log = LogManager.GetLogger("myplugin");
log.Error("Some message.");
您想要配置從插件日誌?我認爲這將取決於主要應用程序。 – Amy 2011-04-28 21:03:32
@Inuyasha在這種情況下,我希望每個插件分別配置日誌記錄。你也可以想象一個你沒有控制權的主應用程序不提供日誌服務,但你不想幹涉其他使用NLog的插件。 – 2011-04-28 23:31:35