gpt4 book ai didi

logback - 有没有办法使用 logback 将 gRPC 上下文中的值打印到日志中?

转载 作者:行者123 更新时间:2023-12-05 07:24:21 25 4
gpt4 key购买 nike

我正在使用 gRPC 编写一个新的微服务。传统上,在记录日志时,我曾经在 logback 的 MDC 中填充跟踪 ID,而 logback 配置直接负责在所有日志语句中打印跟踪 ID。对于 gRPC,我正在使用 Context 来设置跟踪 ID,但无法找到使用 logback 配置文件直接记录它们的方法。

我认为 Context 是通过此链接执行此操作的正确位置 How to intercept the headers from in call to one service and insert it to another request in gRPC-java?

在下面找到我用来从 java 项目中的 logback 的 MDC 打印值的模式。

<Pattern>%date{dd-MM-yyyy;HH:mm:ss.SSS}|[%mdc{CLIENT-ID}]|[%mdc{REQ-ID}]|[%thread] %-5level %logger{36} - %msg%n
</Pattern>

有没有办法像上面那样直接将上下文中的值打印到日志语句中?在处理 gRPC 时,这是否是考虑在日志中记录跟踪 ID 的正确方法

最佳答案

是的,通过使用上下文,您走在了正确的轨道上。实现它的方法是编写一个自定义布局(子类 LayoutBase<ILoggingEvent>),它将查询上下文并将其写入日志。查询上下文的代码是:

Span span = ContextUtils.getValue(Context.current());

然后将其转换为字符串:

span.getContext().getTraceId().toLowerBase16()

关于logback - 有没有办法使用 logback 将 gRPC 上下文中的值打印到日志中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55490340/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com