Log4j2Test.groovy 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. /*
  2. * Copyright The OpenTelemetry Authors
  3. * SPDX-License-Identifier: Apache-2.0
  4. */
  5. import io.opentelemetry.api.trace.Span
  6. import io.opentelemetry.instrumentation.log4j.v2_16.ListAppender
  7. import io.opentelemetry.instrumentation.test.InstrumentationSpecification
  8. import org.apache.logging.log4j.LogManager
  9. abstract class Log4j2Test extends InstrumentationSpecification {
  10. def setup() {
  11. ListAppender.get().clearEvents()
  12. }
  13. def "no ids when no span"() {
  14. given:
  15. def logger = LogManager.getLogger("TestLogger")
  16. when:
  17. logger.info("log message 1")
  18. logger.info("log message 2")
  19. def events = ListAppender.get().getEvents()
  20. then:
  21. events.size() == 2
  22. events[0].message == "log message 1"
  23. events[0].contextData["trace_id"] == null
  24. events[0].contextData["span_id"] == null
  25. events[0].contextData["trace_flags"] == null
  26. events[1].message == "log message 2"
  27. events[1].contextData["trace_id"] == null
  28. events[1].contextData["span_id"] == null
  29. events[1].contextData["trace_flags"] == null
  30. }
  31. def "ids when span"() {
  32. given:
  33. def logger = LogManager.getLogger("TestLogger")
  34. when:
  35. Span span1 = runWithSpan("test") {
  36. logger.info("log message 1")
  37. Span.current()
  38. }
  39. logger.info("log message 2")
  40. Span span2 = runWithSpan("test 2") {
  41. logger.info("log message 3")
  42. Span.current()
  43. }
  44. def events = ListAppender.get().getEvents()
  45. then:
  46. events.size() == 3
  47. events[0].message == "log message 1"
  48. events[0].contextData["trace_id"] == span1.spanContext.traceId
  49. events[0].contextData["span_id"] == span1.spanContext.spanId
  50. events[0].contextData["trace_flags"] == "01"
  51. events[1].message == "log message 2"
  52. events[1].contextData["trace_id"] == null
  53. events[1].contextData["span_id"] == null
  54. events[1].contextData["trace_flags"] == null
  55. events[2].message == "log message 3"
  56. events[2].contextData["trace_id"] == span2.spanContext.traceId
  57. events[2].contextData["span_id"] == span2.spanContext.spanId
  58. events[2].contextData["trace_flags"] == "01"
  59. }
  60. }