Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何让log4net帮助我在%消息中记录结构化数据?_Log4net - Fatal编程技术网

如何让log4net帮助我在%消息中记录结构化数据?

如何让log4net帮助我在%消息中记录结构化数据?,log4net,Log4net,我们在一个C程序中有自己的自定义记录器,现在正在尝试移植到log4net 在我们的应用程序中,通常会进入%消息的内容有进一步的结构。它可能包含requestid、关联用户以及requestid和用户对程序具有内部意义的其他结构 我们希望最终能够搜索%message中的字段,比如requestid,这样我们就可以收集具有相同requestid的所有日志条目 log4net是否有助于创建自己的自定义字段?我们询问的原因是,当前整个%消息默认记录为一个字符串 关于如何为%message提供进一步的格式

我们在一个C程序中有自己的自定义记录器,现在正在尝试移植到log4net

在我们的应用程序中,通常会进入%消息的内容有进一步的结构。它可能包含requestid、关联用户以及requestid和用户对程序具有内部意义的其他结构

我们希望最终能够搜索%message中的字段,比如requestid,这样我们就可以收集具有相同requestid的所有日志条目

log4net是否有助于创建自己的自定义字段?我们询问的原因是,当前整个%消息默认记录为一个字符串


关于如何为%message提供进一步的格式设置,还有其他建议吗?否则,我们必须在我们自己的代码中预先格式化%消息,例如,CSV格式。您可以使用事件上下文向日志条目添加其他结构化数据:

根据您想要记录的信息类型,您可能需要创建一个接受附加参数的包装器,否则您必须编写如下详细代码:

log4net.ThreadContext.Properties["myInformation"] = yourAdditionalInformation;
log.Info("info message");

可以计算其他信息,因此可以在应用程序启动时设置一次。查看上述教程中的计算上下文属性。

您可以使用事件上下文向日志条目添加其他结构化数据:

根据您想要记录的信息类型,您可能需要创建一个接受附加参数的包装器,否则您必须编写如下详细代码:

log4net.ThreadContext.Properties["myInformation"] = yourAdditionalInformation;
log.Info("info message");

可以计算其他信息,因此可以在应用程序启动时设置一次。请查看上述教程中的计算上下文属性。

我就是这样做的,使用AdoNetAppender,您可以将信息保存到单独的数据库字段中,这样可以很容易地对信息进行筛选和分组。感谢您的评论,我应该提到故事的这一部分:这是我的做法,使用AdoNetAppender,您可以将信息保存到单独的数据库字段中,这使得信息的筛选和分组非常容易。感谢您的评论,我应该提到故事的这一部分: