如何在带有 Quarkus 的 JUL (java.util.logging) 中使用自定义格式化程序

欧内斯特

我们有一个自定义的 JUL Formatter,它主要创建一个包含 MDC 属性的 JSON,以便将其发送到我们 K8S 集群上的 ELK。我还没有找到一种方法来告诉 Quarkus 将自定义格式器“com.example.CustomJulJsonFormatter”用于所有日志记录目的。具有所有日志选项的 application.properties 文件不包括格式化程序(类)的选项。还是我在这里遗漏了什么?

我以编程方式成功地将格式化程序(通过处理程序)设置为自定义格式化程序,但这至少会错过启动日志消息,而且似乎不鼓励这样做:

LogManager.getLogManager().getLogger(Logger.GLOBAL_LOGGER_NAME).setUseParentHandlers(false);
Handler handler = new ConsoleHandler();
handler.setFormatter(new CustomJulJsonFormatter());
LogManager.getLogManager().getLogger(Logger.GLOBAL_LOGGER_NAME).addHandler(handler);

目前,我对 Quarkus 还是很陌生,来自 payara micro,我们在 docker 容器中提供自定义 logging.properties,并通过 ENTRYPOINT 中的“--logProperties”、“/opt/payara/logging.properties”进行设置。在这里也最容易做到这一点,但我也找不到合适的 jvm 选项来通过 quarkus 启动(尤其是本机版本)来实现这一点。

让我知道这是否有意义。任何帮助,将不胜感激 :)

编辑:自定义格式化程序类的粗略轮廓是

...
import java.util.logging.Formatter;
import java.util.logging.LogRecord;
import org.slf4j.MDC;
import com.fasterxml.jackson.databind.ObjectMapper;
...
public class CustomJulJsonFormatter extends Formatter {
    ...
    @Override
    public String format(LogRecord record) {
    // create JSON from LogRecord, MDC and Environment
    ...
    return jsonLog.toString();
    }
    ...
}
欧内斯特

Quarkus 现在可用的 JSON 记录器似乎已经解决了这个问题。截至目前(Quarkus v1.5.2),该扩展quarkus-logging-json提供类似于我们与自定义 JUL 格式化程序一起使用的那些 JSON 格式的日志,并且一切都按预期工作。也不再需要 MDC 处理(无论如何在本机中都不能很好地工作),因为它在此上下文中的主要用例已通过使用quarkus-smallrye-opentracing.

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何从不同的线程使用java.util.logging.Logger?

来自分类Dev

没有调用python logging dictConfig自定义格式化程序

来自分类Dev

如何模拟java.util.logging

来自分类Dev

如何在JSF中使用自定义时区处理java.util.Date的可视化

来自分类Dev

在java.util.logging logging.properties文件中,“处理程序”和“ .handlers”之间有什么区别?

来自分类Dev

使用 java.util.logging 打印没有空格的数字?

来自分类Dev

如何使用slf4j和java.util.logging登录tomcat

来自分类Dev

使用java.util.logging和restlet记录文件

来自分类Dev

如何在Maven中设置java.util.logging日志级别(用于Jenkins插件(JenkinsRule)测试)

来自分类Dev

在Java EE / Spring容器中多次使用jul-to-slf4j有什么影响?

来自分类Dev

如何配置log4j以使用JULAppender将日志事件发送到java.util.logging?

来自分类Dev

如何配置log4j以使用JULAppender将日志事件发送到java.util.logging?

来自分类Dev

printStackTrace到java.util.logging.Logger

来自分类Dev

Java Util Logging设置FileHandler全局

来自分类Dev

java.util.logging.FileHandler清除日志

来自分类Dev

使用java.util.logging Autoflush在调试过程中刷新流处理程序

来自分类Dev

Java java.util.logging.logger。使用数组对象作为参数

来自分类Dev

如何使用自定义格式化程序进行JSON序列化

来自分类Dev

改变颜色和在Eclipse java.util.logging.Logger中输出的格式

来自分类Dev

Java将字符串转换为具有自定义格式的java.util.Date对象

来自分类Dev

java.util.logging如何避免关闭子级别的日志记录

来自分类Dev

如何输出当前java.util.logging.Logger日志文件名的名称?

来自分类Dev

如何映射java.util.logging和SLF4J记录器的级别?

来自分类Dev

如何将java.util.logging发送到log4j2?

来自分类Dev

如何输出当前java.util.logging.Logger日志文件名的名称?

来自分类Dev

有没有一种方法可以让java.util.logging.LogManager报告指定了属性的所有记录程序或访问这些属性?

来自分类Dev

如何使用自定义boost :: log格式化程序输出TimeStamp和ThreadID属性?

来自分类Dev

ClassCircularityError:java / util / logging / LogRecord使用JavaMelody和Tomcat插件运行Gradle webapp

来自分类Dev

ClassCircularityError:使用JavaMelody和Tomcat插件运行Gradle webapp的java / util / logging / LogRecord

Related 相关文章

  1. 1

    如何从不同的线程使用java.util.logging.Logger?

  2. 2

    没有调用python logging dictConfig自定义格式化程序

  3. 3

    如何模拟java.util.logging

  4. 4

    如何在JSF中使用自定义时区处理java.util.Date的可视化

  5. 5

    在java.util.logging logging.properties文件中,“处理程序”和“ .handlers”之间有什么区别?

  6. 6

    使用 java.util.logging 打印没有空格的数字?

  7. 7

    如何使用slf4j和java.util.logging登录tomcat

  8. 8

    使用java.util.logging和restlet记录文件

  9. 9

    如何在Maven中设置java.util.logging日志级别(用于Jenkins插件(JenkinsRule)测试)

  10. 10

    在Java EE / Spring容器中多次使用jul-to-slf4j有什么影响?

  11. 11

    如何配置log4j以使用JULAppender将日志事件发送到java.util.logging?

  12. 12

    如何配置log4j以使用JULAppender将日志事件发送到java.util.logging?

  13. 13

    printStackTrace到java.util.logging.Logger

  14. 14

    Java Util Logging设置FileHandler全局

  15. 15

    java.util.logging.FileHandler清除日志

  16. 16

    使用java.util.logging Autoflush在调试过程中刷新流处理程序

  17. 17

    Java java.util.logging.logger。使用数组对象作为参数

  18. 18

    如何使用自定义格式化程序进行JSON序列化

  19. 19

    改变颜色和在Eclipse java.util.logging.Logger中输出的格式

  20. 20

    Java将字符串转换为具有自定义格式的java.util.Date对象

  21. 21

    java.util.logging如何避免关闭子级别的日志记录

  22. 22

    如何输出当前java.util.logging.Logger日志文件名的名称?

  23. 23

    如何映射java.util.logging和SLF4J记录器的级别?

  24. 24

    如何将java.util.logging发送到log4j2?

  25. 25

    如何输出当前java.util.logging.Logger日志文件名的名称?

  26. 26

    有没有一种方法可以让java.util.logging.LogManager报告指定了属性的所有记录程序或访问这些属性?

  27. 27

    如何使用自定义boost :: log格式化程序输出TimeStamp和ThreadID属性?

  28. 28

    ClassCircularityError:java / util / logging / LogRecord使用JavaMelody和Tomcat插件运行Gradle webapp

  29. 29

    ClassCircularityError:使用JavaMelody和Tomcat插件运行Gradle webapp的java / util / logging / LogRecord

热门标签

归档