gpt4 book ai didi

java - 如何扩展 Flogger Fluent API 以获取特定于域的属性?

转载 作者:行者123 更新时间:2023-12-02 09:51:55 26 4
gpt4 key购买 nike

假设在我的域中,每个日志语句都发生在 Web 请求的上下文中,并且每个请求都有用户 ID、 session ID 和购物车 ID 的上下文。

而不是记录如下内容:

logger.atInfo().log("User %s (session: %s) added product %s to cart %s.", userId, sessionId, productId, cartId);

我更喜欢更结构化的东西,如下所示:

logger.atInfo().forUser(userId).withSession(sessionId).withCart(cartId).log("product added to cart: %s", productId);

或者更好

logger.atInfo().forUser(userId).withSession(sessionId).withCart(cartId).product(productId).action(PRODUCT_ADDED).log();

https://google.github.io/flogger/benefits#extensibility似乎暗示这是可能的,但我不知道在哪里。

我希望我的日志记录后端可以将此信息的 JSON 序列化发送到我的 ELK 堆栈。

最佳答案

您创建一个新类(例如UserLogger)来扩展 Logger 并实现您的方法,并使用此类实例化您的记录器。

public class UserLogger extends FluentLogger {

public UserLogger forUser(Object userId) {
return super.log("User %s");
}
...
}

关于java - 如何扩展 Flogger Fluent API 以获取特定于域的属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56262887/

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