使用Common.Logging和NLog

时间:2019-01-21 14:58:51

标签: c# nlog common.logging structured-logging

我在项目中拥有Common.Logging(3.4.1)和NLog(4.5.11)的最新版本。按照说明进行操作以绑定Common。在app.config中使用NLog登录,现在可以登录了。

现在我要进行结构化日志记录:

private static readonly ILog _logger = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);

var message = new IDontKnowWhat("A structured message for ClientId {ClientId}", ClientId.ToString());
_logger.Info(message);

上面是伪代码,不知道如何构造消息对象。 而且, _logger.InfoFormat 似乎可以与 String.Format 一起使用,而不是结构化日志记录。

Common.Logging除了使用 ThreadVariablesContext / GlobalVariablesContext / NestedThreadVariablesContext 以外,是否提供结构化日志记录?

2 个答案:

答案 0 :(得分:2)

幸运的是,Common.Logging开发团队目前正在解决此问题: Common.Logging.NLog45 with support for structured logging #176

答案 1 :(得分:-1)

检出serilog以进行结构化日志记录。如果您的要求是使用NLog,则serilog也可以接收NLog。