Hacktoberfest 2026: những issue maintainer đã đánh dấu cho tháng Mười, đang mở và phù hợp người mới. Xem issue Hacktoberfest

APM agent breaks log.error when using StructuredLogEncoder with ecs format

Đang mở
#4,470 4 bình luận 0 reaction 0 người được giao Xem trên GitHub

Maintainer thường phản hồi trong vòng 1 ngày

Chưa có ai nhận issue này.

Đánh giá

Độ khó
3/5
Thời gian dự kiến
1-2 ngày
Mức phù hợp với người mới
58/100
Loại issue
Lỗi
Độ rõ ràng
Khá rõ ràng
Mức độ hoạt động
Ít trao đổi
Công nghệ
java, spring-boot
Lĩnh vực
backend, observability-sre

Hướng nghiên cứu

Bắt đầu bằng cách tái hiện vấn đề với StructuredLogEncoder trong logback-spring.xml được cấu hình cho ecs và một lệnh gọi đến Logger#error(String, Throwable). Kiểm tra sự tương tác giữa APM agent, StructuredLogEncoder và trường error được mô tả trong báo cáo. Được xem là hoàn tất khi việc ghi log tạo ra JSON đúng định dạng mà không có ngoại lệ của appender.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

agent-java community

Describe the bug

We are using the version 1.55.5 with experimental Spring Boot 4 support. Since the update we have problems with log.error in SLF4J. This is the logback-spring.xml configuration:

<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
  <encoder class="org.springframework.boot.logging.logback.StructuredLogEncoder">
    <format>ecs</format>
  </encoder>
</appender>

When using the apm agent we are seeing this in the logs instead of the real error log:

07:18:54,651 |-ERROR in ch.qos.logback.core.ConsoleAppender[CONSOLE] - Appender [CONSOLE] failed to append. java.lang.IllegalStateException: The name 'error' has already been written

According to my research, this happens if the JSON log already contains a field with the same name, in this case error. Logback uses the field error for a complex object that contains error.message and error.stack_trace. This is also documented in the Elastic Common Schema.

Steps to reproduce

Use the org.springframework.boot.logging.logback.StructuredLogEncoder with ecs format as described and call org.slf4j.Logger#error(java.lang.String, java.lang.Throwable).

Expected behavior

No exception during logging, but a well-formed JSON log containing the error.

Ngôn ngữ chính
Java
Star
593
Fork
337
Merge trung bình
15 giờ 24 phút
Pull request đã merge (30 ngày)
15

Chuẩn bị môi trường

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của elastic/apm-agent-java

Tất cả issue của elastic/apm-agent-java

Issue tương tự

Thêm issue về Java

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.