Skip to content

Releases: SAP/cf-java-logging-support

4.0.0

12 Nov 08:33
Immutable release. Only release title and notes can be modified.

Choose a tag to compare

Welcome to the new major release

This release introduces major changes to cf-java-logging-support. The library now requires Java 17.x+ and SLF4J 2.x+. If you need support for older versions (including javax.servlet) please stay on the 3.x release.

Noticable changes

If you upgrade from an earlier release of this library, you should be able to keep your current configuration. But you might need to change your dependencies to accommodate for the renaming of cf-java-logging-support-servlet-jakarta to cf-java-logging-support-servlet. This is likely to be the only breaking change.

Upgrades

  • Java 17 is required (except for OpenTelemetry Java Agent extension which need Java 11)
  • Jakarta Servlet API only
  • SLF4j 2.x and corresponding versions of Logback and Log4j2

Removals

  • cf-java-logging-support-servlet-jakarta (moved to cf-java-logging-support-servlet)
  • cf-java-logging-support-jersey
  • cf-java-monitoring-custom-metrics-clients/*
  • sample app using Jersey

Note, that for sending custom metrics it is recommended to use the OpenTelemetry Java Agent with the cf-java-logging-support-opentelemetry-agent-extension.

New Features

  • Support for key-value-pairs in SLF4J's fluent API
  • SPI extensions points for
    • ContextFieldSupplier, LogbackContextFieldSupplier, and Log4jContextFieldSupplier
    • DynamicLogLevelConfiguration and DynamicLogLevelProcessor
  • auto-detection of service bindings to SAP Application Logging service for SAP BTP and formatting of custom fields accordingly

Breaking Changes

The main branch was force-pushed to contain the 4.x version of the library. You may need to reset your local repository, if you checked out the code before the creation of the release candidates.

The dynamic log level feature has been refactored. It now requires cf-java-logging-support-servlet-dynlog-jwt as additional dependency. The original configuration still applies but if you implemented custom extensions you likely need to integrate with the new extension points. Please have a look at the Spring Boot Sample App that includes a custom integration with the dynamic log level feature.

What's Changed

Full Changelog: v3.8.6...4.0.0

v3.8.6

10 Aug 09:30

Choose a tag to compare

What's Changed

This is a minor upgrade of dependencies. The OTel SDK is required to be compatible with newer releases of the OTel SDK.
It contains code changes that fix compile errors because of removed or now restricted functions.

Full Changelog: v3.8.5...v3.8.6

v3.8.5

14 May 08:06

Choose a tag to compare

What's Changed

This release upgrades several dependencies. Most noticeable are the java-jwt and jackson upgrades. The OpenTelemetry Java Agent extension has been changed to avoid the io.pivotal.cfenv dependency altogether. With this release the extension gains the ability to emit CF resource attributes following the semantic convention.

Full Changelog: v3.8.4...v3.8.5

v3.8.4

19 Jul 19:43

Choose a tag to compare

What's Changed

This release contains several improvements on the servlet instrumentation contributed by @j-denner. It also features an improvement for the OpenTelemetry Dynatrace exporter: By default the preferred aggregation temporality is now set to always_delta instead of the delta_preferred provided by the OpenTelemetry SDK. The difference is, that the exporter will also use delta aggregation temporality for up-and-down counters. This is necessary, since Dynatrace will otherwise drop metrics of this type. You can switch the aggregation temporality with system property otel.exporter.dynatrace.metrics.temporality.preference.

  • Fix typo in fields documentation by @vtintillier in #176
  • DynLogEnvironment - Also wrap configuration with a LazyInitializer. by @j-denner in #182
  • Some corrections and performance improvements in CorrelationIdFilter by @j-denner in #183
  • AddHttpHeaderToLogContextFilter: Filter immediately for getField presence by @j-denner in #184
  • Fix Aggregation Temporality in Dynatrace Exporter by @KarstenSchnitter in #181

New Contributors

Full Changelog: v3.8.3...v3.8.4

Many thanks to all contributors to this release.

v3.8.3

29 Feb 09:11

Choose a tag to compare

This is a bugfix release for the dynatrace exporter for metrics. Dynatrace requires metrics of kind sum to have delta aggregation temporality. Metrics with cumulative aggregation temporality are currently dropped by the API.

What's Changed

  • Fix Dynatrace Exported to Generate DELTA Temporality by default and allow manual reconfiguration by @KarstenSchnitter in #174

Full Changelog: v3.8.2...v3.8.3

v3.8.2

14 Feb 09:07

Choose a tag to compare

This release just improves on the cf-java-logging-support-opentelemetry-agent-extension. It now provides a dynatrace exporters for metrics. This will detect bindings to SAP BTP APM and allow the OpenTelemetry Java Agent to forward metrics to Dynatrace. See the documentation on the required configuration.

What's Changed

Full Changelog: v3.8.1...v3.8.2

v3.8.1

14 Jan 09:53

Choose a tag to compare

This release upgrades Logback to version 1.2.13 to mitigate CVE-2023-6378. Please upgrade your dependencies. Note, that the CVE issue is within an optionally configurable log receiver of an application, that not only requires explicit configuration in the logback files, but also adding an appropriate route in the CF manifest of the application.

The release also extends the module: cf-java-logging-support-opentelemetry-agent-extension. It now provides an cloud-logging exporter to be used with the OpenTelemetry Java Agent. This allows to combine the SAP Cloud Logging support with other OpenTelemetry targets. Additionally, all bound service instances will now be configured as data sinks.

What's Changed

Full Changelog: v3.8.0...v3.8.1

v3.8.0

14 Nov 05:41

Choose a tag to compare

This release adds a new module: cf-java-logging-support-opentelemetry-agent-extension. It provides an OpenTelemetry Java Agent extension, that scans the application environment for service bindings to SAP Cloud Logging. If such a binding is found, the OpenTelemetry Java Agent is configured to forward observability data to that service instance. See the extension documentation for details.

What's Changed

Full Changelog: v3.7.1...v3.8.0

v3.7.1

01 Sep 05:30

Choose a tag to compare

This minor release introduces two new fields, when exceptions are logged:

  • exception_name containing the Java class name of the logged exception
  • exception_message containing the message of the logged exception

The exception_name can be used to aggregate events by exception.
The exception_message may contain information that is otherwise only available in the stacktrace.
Thanks to @KaiHofstetter for suggesting this change.

What's Changed

  • Add Exceptions Type and Message by @KarstenSchnitter in #161
  • Use the SAP Java buildpack by @haraldfuchs in #159
  • Bump jetty-server from 11.0.13 to 11.0.14 in /cf-java-logging-support-servlet-jakarta by @dependabot in #155
  • Bump jetty-server from 9.4.50.v20221201 to 9.4.51.v20230217 in /cf-java-logging-support-servlet by @dependabot in #157

New Contributors

Full Changelog: v3.7.0...v3.7.1

v3.7.0

01 Mar 06:53

Choose a tag to compare

This release introduces cf-java-logging-support-servlet-jakarta, a copy of cf-java-logging-support-servlet but linked against jakarta.servlet instead of javax.servlet.
The code is compatible between the artefacts, so that can be exchanged for each other if the dependencies are met.

What's Changed

New Contributors

Full Changelog: v3.6.3...v3.7.0