You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何配置可动态调整级别的Plain Text与JSON双文件日志?

解决方案:同时输出纯文本与JSON格式日志并支持运行时级别调整

要实现同时生成纯文本和JSON两种格式的文件日志,且各自级别可独立运行时调整,你可以通过Quarkus的命名文件日志处理器结合quarkus-logging-json扩展来实现,具体步骤如下:

1. 添加必要依赖

在pom.xml(Maven)或build.gradle(Gradle)中加入以下依赖:

  • 核心文件日志依赖:io.quarkus:quarkus-logging-file
  • JSON日志格式化依赖:io.quarkus:quarkus-logging-json

Maven示例:

<dependency>
    <groupId>io.quarkus</groupId>
    <artifactId>quarkus-logging-file</artifactId>
</dependency>
<dependency>
    <groupId>io.quarkus</groupId>
    <artifactId>quarkus-logging-json</artifactId>
</dependency>

2. 配置双格式文件日志

在application.properties中定义两个命名文件处理器,分别对应纯文本和JSON格式,再将根日志(或指定日志类别)关联这两个处理器:

# 配置纯文本文件处理器(命名为plain-text-file)
quarkus.log.handlers.plain-text-file.type=file
quarkus.log.handlers.plain-text-file.path=logs/app-plain.log
quarkus.log.handlers.plain-text-file.level=INFO
quarkus.log.handlers.plain-text-file.format=%d{yyyy-MM-dd HH:mm:ss,SSS} %-5p [%c{3.}] (%t) %s%e%n

# 配置JSON文件处理器(命名为json-file)
quarkus.log.handlers.json-file.type=file
quarkus.log.handlers.json-file.path=logs/app-json.log
quarkus.log.handlers.json-file.level=DEBUG
# 启用JSON格式化,自动使用quarkus-logging-json的配置
quarkus.log.handlers.json-file.formatter=json

# 将根日志同时关联两个处理器
quarkus.log.handlers=plain-text-file,json-file
# 根日志级别需设置为不低于两个处理器的级别,避免日志被过滤
quarkus.log.level=DEBUG

3. 运行时独立调整日志级别

Quarkus支持运行时动态调整日志配置,你可以通过以下方式分别修改两个处理器的级别:

  • 环境变量:设置QUARKUS_LOG_HANDLERS_PLAIN_TEXT_FILE_LEVEL=WARN或QUARKUS_LOG_HANDLERS_JSON_FILE_LEVEL=TRACE
  • 配置文件重载:修改application.properties后,通过Quarkus的配置刷新机制(如发送POST请求到/q/config/reload,需启用quarkus-smallrye-config扩展支持配置重载)
  • Quarkus Dev UI:开发模式下,直接通过Dev UI的日志配置面板调整

关键说明

  • 命名处理器通过quarkus.log.handlers.<handler-name>前缀区分不同输出配置,每个处理器可独立设置路径、级别、格式
  • JSON处理器只需指定formatter=json即可启用quarkus-logging-json的格式化能力,无需额外复杂配置
  • 根日志级别需设置为所有处理器级别中的最低值,否则级别高于根日志的处理器将无法接收对应日志

内容的提问来源于stack exchange,提问作者user1340123

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 12:15:13