如何让log4net帮助我在%消息中记录结构化数据?
我们在一个C程序中有自己的自定义记录器,现在正在尝试移植到log4net 在我们的应用程序中,通常会进入%消息的内容有进一步的结构。它可能包含requestid、关联用户以及requestid和用户对程序具有内部意义的其他结构 我们希望最终能够搜索%message中的字段,比如requestid,这样我们就可以收集具有相同requestid的所有日志条目 log4net是否有助于创建自己的自定义字段?我们询问的原因是,当前整个%消息默认记录为一个字符串如何让log4net帮助我在%消息中记录结构化数据?,log4net,Log4net,我们在一个C程序中有自己的自定义记录器,现在正在尝试移植到log4net 在我们的应用程序中,通常会进入%消息的内容有进一步的结构。它可能包含requestid、关联用户以及requestid和用户对程序具有内部意义的其他结构 我们希望最终能够搜索%message中的字段,比如requestid,这样我们就可以收集具有相同requestid的所有日志条目 log4net是否有助于创建自己的自定义字段?我们询问的原因是,当前整个%消息默认记录为一个字符串 关于如何为%message提供进一步的格式
关于如何为%message提供进一步的格式设置,还有其他建议吗?否则,我们必须在我们自己的代码中预先格式化%消息,例如,CSV格式。您可以使用事件上下文向日志条目添加其他结构化数据: 根据您想要记录的信息类型,您可能需要创建一个接受附加参数的包装器,否则您必须编写如下详细代码:
log4net.ThreadContext.Properties["myInformation"] = yourAdditionalInformation;
log.Info("info message");
可以计算其他信息,因此可以在应用程序启动时设置一次。查看上述教程中的计算上下文属性。您可以使用事件上下文向日志条目添加其他结构化数据: 根据您想要记录的信息类型,您可能需要创建一个接受附加参数的包装器,否则您必须编写如下详细代码:
log4net.ThreadContext.Properties["myInformation"] = yourAdditionalInformation;
log.Info("info message");
可以计算其他信息,因此可以在应用程序启动时设置一次。请查看上述教程中的计算上下文属性。我就是这样做的,使用AdoNetAppender,您可以将信息保存到单独的数据库字段中,这样可以很容易地对信息进行筛选和分组。感谢您的评论,我应该提到故事的这一部分:这是我的做法,使用AdoNetAppender,您可以将信息保存到单独的数据库字段中,这使得信息的筛选和分组非常容易。感谢您的评论,我应该提到故事的这一部分: