我有一个项目,我需要让用户在数据库中动态编写日志模板,并在执行时设置一些值。我使用NLog作为日志记录库。
例如,用户将输入“为注册表{registry}设置值{value}”,并在执行时生成“为注册表HRRTC2设置值45”。
我能够使用LogEventInfo做到这一点:
var info = new LogEventInfo
{
Message = message,
Parameters = parameters
};
_logger.Info(info);
我的问题是,以这种方式,用户必须对模板中的参数保持相同的顺序。它无法生成“注册表{registry}:设置值{value}”,因为它将生成“注册表45:设置值HRRTC2”。
我搜索了一些有关设置命名参数({value = 45, registry="HRRTC2"}
)的方法的文档,但是没有成功。
我尝试使用LogEventInfo的MessageTemplateParameters属性,但无法弄清楚它如何工作。
谢谢。