Support logback 1.6.x in the logback toolkit layouts (#837) * Support logback 1.6.x in the logback toolkit layouts Logback 1.6.0 removed PatternLayout.defaultConverterMap, which TraceIdPatternLogbackLayout and TraceIdMDCPatternLogbackLayout wrote their conversion words to in a static initializer, so both failed with NoSuchFieldError: defaultConverterMap (apache/skywalking#14120). The layouts now register their conversion words in the logging context's conversion rule registry (CoreConstants.PATTERN_RULE_REGISTRY) when they start, updating it in place as logback does for <conversionRule>. Logback 1.2.x to 1.6.x all read class names from that registry, so the same toolkit artifact keeps working on older logback. Logback 1.5.13 is not supported because of an upstream regression fixed in 1.5.14 (qos-ch/logback#885). The toolkit now compiles against logback 1.6.5, so an API removal fails the build. LogbackVersionCompatibilityTest renders both layouts against logback 1.2.13, 1.3.16, 1.4.14, 1.5.12, 1.5.14, 1.5.38 and 1.6.5, each loaded in an isolated class loader. Add apm-toolkit-logback-scenario, the first plugin test of the logback toolkit and its agent activation. It runs logback 1.2.x to 1.5.x with the released toolkit and checks the trace ID and SkyWalking context rendered by both layouts, including behind an AsyncAppender, through the gRPC log reporter. * Replace the conversion rule registry instead of modifying it Register the SkyWalking conversion words by replacing the context's conversion rule registry with an updated copy, under the context monitor held only for the copy. Layouts starting concurrently, from any class loader, keep each other's words, and logback reads a registry that is never modified afterwards, so no lock is held while logback creates and starts the converters. Nothing is copied once the words are registered. On logback before 1.5.14, which also writes <conversionRule>s to this registry, a rule logback registers at the same time as a layout starts in another thread may be lost; this is documented.
SkyWalking-Java: The Java Agent for Apache SkyWalking, which provides the native tracing/metrics/logging abilities for Java projects.
SkyWalking: an APM(application performance monitor) system, especially designed for microservices, cloud native and container-based (Docker and Kubernetes) architectures.
Please head to the releases page to download a release of Apache SkyWalking.
This project adheres to the Contributor Covenant code of conduct. By participating, you are expected to uphold this code. Please follow the REPORTING GUIDELINES to report unacceptable behavior.
Find the demo and screenshots on our website.
dev-subscribe@skywalking.apache.org, follow the reply to subscribe the mail list.Request to join SkyWalking slack mail to the mail list(dev@skywalking.apache.org), we will invite you in.[CN] Request to join SkyWalking slack mail to the mail list(dev@skywalking.apache.org), we will invite you in.