【发布时间】:2012-12-31 04:22:54
【问题描述】:
我正在向我的休息应用程序添加日志,其中有多个层(控制器、服务、dao ...)。
如何识别或定义每个请求的唯一日志 ID,以便我可以在不同层中为一个请求使用相同的日志 ID? (无需在控制器中创建并将其传递给每一层)
仅供参考:我正在使用 log4j
谢谢!
【问题讨论】:
我正在向我的休息应用程序添加日志,其中有多个层(控制器、服务、dao ...)。
如何识别或定义每个请求的唯一日志 ID,以便我可以在不同层中为一个请求使用相同的日志 ID? (无需在控制器中创建并将其传递给每一层)
仅供参考:我正在使用 log4j
谢谢!
【问题讨论】:
在不知道您使用的是什么日志框架的情况下,很难提供具体的建议。
为此,我通常使用 Log4J 的 NDC 或 MDC 之类的东西:请求进来,在诊断上下文中用相关信息标记,然后日志格式化程序以对您的应用程序有意义的方式吐出诊断上下文。
我通常还使用自定义消息格式化程序,以确保一致地记录 DC,以供日志文件使用者以后使用。如果它要去数据库/消息队列/等。这可能并不重要,因为上下文通常可以按原样转储并进行相应处理。
【讨论】: