
在 Quarkus 2.x 中,可通过环境变量 OTEL_LOGS_EXPORTER=none 或 OTEL_JAVAAGENT_LOGGING=none 在运行时禁用 OpenTelemetry 的日志信号导出或 SDK 自身诊断日志,同时保持 trace ID 和 span ID 的跨服务透传能力。
在 quarkus 2.x 中,可通过环境变量 `otel_logs_exporter=none` 或 `otel_javaagent_logging=none` 在运行时禁用 opentelemetry 的日志信号导出或 sdk 自身诊断日志,同时保持 trace id 和 span id 的跨服务透传能力。
OpenTelemetry 在 Quarkus 中默认支持 traces、metrics 和 logs 三大信号(signals)。当您启用 OpenTelemetry(如通过 quarkus-opentelemetry 扩展)后,有时需选择性关闭日志导出功能——例如,在某条微服务链路中停用日志上报以降低资源开销或满足合规要求,但又必须保留 trace 上下文传播能力(即继续透传 trace-id 和 span-id),确保分布式追踪链路不中断。
✅ 正确的禁用方式(按目标区分)
| 目标 | 配置项 | 说明 |
|---|---|---|
禁用 OpenTelemetry 日志信号导出(即不发送 LogRecord 到后端) |
OTEL_LOGS_EXPORTER=none |
这是 OpenTelemetry SDK 标准配置,完全停止日志作为独立信号的采集与导出,但不影响 trace/metrics 行为及上下文传播。 |
| 禁用 OpenTelemetry Java Agent 的内部诊断日志(如启动警告、采样调试输出等) | OTEL_JAVAAGENT_LOGGING=none |
仅适用于启用了 -javaagent 模式的场景(如自动 instrumentation),用于静默 agent 自身的 stdout/stderr 输出。 |
? 注意:若使用 Quarkus 原生构建(GraalVM native image),通常不依赖 Java Agent,因此
OTEL_JAVAAGENT_LOGGING不生效;应优先关注OTEL_LOGS_EXPORTER。
? 运行时生效配置示例
您可在容器部署、Kubernetes 或本地启动时通过环境变量动态控制:
由夸克扫描王提供的文件格式转换工具。当用户需要将图片、截图或扫描件转换为 Office 文档(Word/Excel)或 PDF 时,使用此技能。适用于包含复杂表格、合同或图文混排内容的图片或扫描件,可尽量还原原始版式并生成可编辑文档。即使用户未明确提到格式转换,只要用户的需求涉及将图片内容转换为可编辑文档(如 .docx、.xlsx 或 .pdf),也应触发此技能。请勿用于提取纯文本或识别文字内容、图像增强处理或从零创建文档
# 方式1:Linux/macOS 启动时设置 OTEL_LOGS_EXPORTER=none ./target/myapp-runner # 方式2:Docker 运行 docker run -e OTEL_LOGS_EXPORTER=none my-quarkus-app # 方式3:Kubernetes Deployment(关键片段) env: - name: OTEL_LOGS_EXPORTER value: "none" # 引号可选,但建议加上以避免 shell 解析异常
✅ 效果验证:
- 应用日志中不再出现由
OpenTelemetryLogExporter触发的日志上报行为; -
TraceId和SpanId仍会正常注入 HTTP Header(如traceparent),下游服务可继续延续链路; - Metrics 和 Traces 导出不受影响(除非另行配置
OTEL_METRICS_EXPORTER或OTEL_TRACES_EXPORTER)。
⚠️ 注意事项
-
OTEL_LOGS_EXPORTER=none不会影响日志库(如 SLF4J/Logback)本身的日志输出,它仅禁用 OpenTelemetry 将日志作为结构化信号(LogRecord)进行采集和导出的行为; - 若使用
quarkus-logging-gelf或quarkus-logging-json等日志格式化扩展,它们与 OpenTelemetry logs 是正交能力,需单独配置; - Quarkus 2.13+ 已全面兼容 OpenTelemetry 1.30+ SDK,上述环境变量无需额外依赖,开箱即用;
- 如需更细粒度控制(如按日志级别过滤),当前 Quarkus 尚未提供运行时日志采样策略 API,建议结合日志框架的
LoggerContext动态调整,或在 exporter 层自定义LogRecordProcessor(需编译时注册,非纯运行时)。
通过合理使用标准 OpenTelemetry 环境变量,您可以在零代码修改的前提下,实现服务级、运行时可控的日志遥测开关,兼顾可观测性灵活性与生产环境轻量化需求。










