This is an automated email from the ASF dual-hosted git repository.
pcongiusti pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel-k.git
The following commit(s) were added to refs/heads/main by this push:
new e950cc8f9 chore(trait): deprecate logging trait in favor of Quarkus
properties
e950cc8f9 is described below
commit e950cc8f9aaf072a785084595ce941a52636d6e4
Author: Pranjul Kalsi <[email protected]>
AuthorDate: Fri Dec 12 15:05:52 2025 +0530
chore(trait): deprecate logging trait in favor of Quarkus properties
---
docs/modules/ROOT/partials/apis/camel-k-crds.adoc | 8 ++
docs/modules/traits/pages/logging.adoc | 106 ++++++++++++++++++++++
pkg/apis/camel/v1/trait/logging.go | 9 ++
pkg/trait/logging.go | 17 +++-
pkg/trait/logging_test.go | 13 +++
5 files changed, 151 insertions(+), 2 deletions(-)
diff --git a/docs/modules/ROOT/partials/apis/camel-k-crds.adoc
b/docs/modules/ROOT/partials/apis/camel-k-crds.adoc
index 4c7d3df4e..3c1ed57e3 100644
--- a/docs/modules/ROOT/partials/apis/camel-k-crds.adoc
+++ b/docs/modules/ROOT/partials/apis/camel-k-crds.adoc
@@ -8252,6 +8252,14 @@ If this is true, the created Knative trigger uses the
event type as a filter on
The Logging trait is used to configure Integration runtime logging options
(such as color and format).
The logging backend is provided by Quarkus, whose configuration is documented
at https://quarkus.io/guides/logging.
+WARNING: The Logging trait is **deprecated** and will be removed in future
release versions:
+use Quarkus logging properties directly instead.
+
+Migration example:
+
+ Before: traits.logging.level=DEBUG
+ After: -p quarkus.log.level=DEBUG
+
[cols="2,2a",options="header"]
|===
diff --git a/docs/modules/traits/pages/logging.adoc
b/docs/modules/traits/pages/logging.adoc
index 4191c4de2..6ae56d2e5 100755
--- a/docs/modules/traits/pages/logging.adoc
+++ b/docs/modules/traits/pages/logging.adoc
@@ -1,11 +1,29 @@
= Logging Trait
// Start of autogenerated code - DO NOT EDIT! (badges)
+[.badges]
+[.badge-key]##Deprecated since##[.badge-unsupported]##2.9.0##
// End of autogenerated code - DO NOT EDIT! (badges)
+
+[WARNING]
+====
+The Logging trait is *deprecated* as of version 2.9.0 and will be removed in a
future release.
+
+Please use Quarkus logging properties directly instead. See the
<<migration-guide>> section below for details.
+====
+
// Start of autogenerated code - DO NOT EDIT! (description)
The Logging trait is used to configure Integration runtime logging options
(such as color and format).
The logging backend is provided by Quarkus, whose configuration is documented
at https://quarkus.io/guides/logging.
+WARNING: The Logging trait is **deprecated** and will be removed in future
release versions:
+use Quarkus logging properties directly instead.
+
+Migration example:
+
+ Before: traits.logging.level=DEBUG
+ After: -p quarkus.log.level=DEBUG
+
This trait is available in the following profiles: **Kubernetes, Knative,
OpenShift**.
@@ -51,3 +69,91 @@ The following configuration options are available:
|===
// End of autogenerated code - DO NOT EDIT! (configuration)
+
+[[migration-guide]]
+== Migration Guide
+
+The Logging trait is deprecated. You should migrate to using Quarkus
properties directly, which provides the same functionality with more
flexibility.
+
+=== Property Mapping
+
+The following table shows how to map Logging trait properties to Quarkus
properties:
+
+[cols="2m,2m,3a"]
+|===
+|Logging Trait | Quarkus Property | Example
+
+| logging.level=DEBUG
+| quarkus.log.level=DEBUG
+| `kamel run -p quarkus.log.level=DEBUG MyRoute.java`
+
+| logging.color=true
+| quarkus.console.color=true
+| `kamel run -p quarkus.console.color=true MyRoute.java`
+
+| logging.format=...
+| quarkus.log.console.format=...
+| `kamel run -p quarkus.log.console.format="%d{HH:mm:ss} %-5p %s%e%n"
MyRoute.java`
+
+| logging.json=true
+| quarkus.log.console.json=true
+| `kamel run -p quarkus.log.console.json=true MyRoute.java`
+
+| logging.json-pretty-print=true
+| quarkus.log.console.json.pretty-print=true
+| `kamel run -p quarkus.log.console.json.pretty-print=true MyRoute.java`
+
+|===
+
+=== Migration Examples
+
+**Before (deprecated):**
+
+[source,yaml]
+----
+apiVersion: camel.apache.org/v1
+kind: Integration
+metadata:
+ name: my-integration
+spec:
+ traits:
+ logging:
+ level: DEBUG
+ json: true
+ jsonPrettyPrint: true
+----
+
+**After (recommended):**
+
+[source,yaml]
+----
+apiVersion: camel.apache.org/v1
+kind: Integration
+metadata:
+ name: my-integration
+spec:
+ configuration:
+ - type: property
+ value: quarkus.log.level=DEBUG
+ - type: property
+ value: quarkus.log.console.json=true
+ - type: property
+ value: quarkus.log.console.json.pretty-print=true
+----
+
+Or using the CLI:
+
+[source,console]
+----
+$ kamel run MyRoute.java \
+ -p quarkus.log.level=DEBUG \
+ -p quarkus.log.console.json=true \
+ -p quarkus.log.console.json.pretty-print=true
+----
+
+=== Benefits of Direct Properties
+
+Using Quarkus properties directly provides more flexibility, including:
+
+* Category-specific log levels:
`quarkus.log.category."org.apache.camel".level=DEBUG`
+* More logging options available at https://quarkus.io/guides/logging
diff --git a/pkg/apis/camel/v1/trait/logging.go
b/pkg/apis/camel/v1/trait/logging.go
index a6738b494..f1d3e3a72 100644
--- a/pkg/apis/camel/v1/trait/logging.go
+++ b/pkg/apis/camel/v1/trait/logging.go
@@ -20,7 +20,16 @@ package trait
// The Logging trait is used to configure Integration runtime logging options
(such as color and format).
// The logging backend is provided by Quarkus, whose configuration is
documented at https://quarkus.io/guides/logging.
//
+// WARNING: The Logging trait is **deprecated** and will be removed in future
release versions:
+// use Quarkus logging properties directly instead.
+//
+// Migration example:
+//
+// Before: traits.logging.level=DEBUG
+// After: -p quarkus.log.level=DEBUG
+//
// +camel-k:trait=logging.
+// +camel-k:deprecated=2.9.0.
type LoggingTrait struct {
Trait `json:",inline" property:",squash"`
diff --git a/pkg/trait/logging.go b/pkg/trait/logging.go
index d0b93bd5e..c7cd6a264 100644
--- a/pkg/trait/logging.go
+++ b/pkg/trait/logging.go
@@ -18,9 +18,12 @@ limitations under the License.
package trait
import (
+ corev1 "k8s.io/api/core/v1"
+ "k8s.io/utils/ptr"
+
+ v1 "github.com/apache/camel-k/v2/pkg/apis/camel/v1"
traitv1 "github.com/apache/camel-k/v2/pkg/apis/camel/v1/trait"
"github.com/apache/camel-k/v2/pkg/util/boolean"
- "k8s.io/utils/ptr"
)
const (
@@ -54,7 +57,17 @@ func (l *loggingTrait) Configure(e *Environment) (bool,
*TraitCondition, error)
return false, NewIntegrationConditionUserDisabled("Logging"),
nil
}
- return e.IntegrationInRunningPhases(), nil, nil
+ condition := NewIntegrationCondition(
+ "Logging",
+ v1.IntegrationConditionTraitInfo,
+ corev1.ConditionTrue,
+ TraitConfigurationReason,
+ "Logging trait is deprecated and may be removed in future
versions. "+
+ "Use Quarkus properties directly (e.g.,
quarkus.log.level, quarkus.log.console.json). "+
+ "See https://quarkus.io/guides/logging for more
details.",
+ )
+
+ return e.IntegrationInRunningPhases(), condition, nil
}
func (l *loggingTrait) Apply(e *Environment) error {
diff --git a/pkg/trait/logging_test.go b/pkg/trait/logging_test.go
index b8b174c7b..baa6f004c 100644
--- a/pkg/trait/logging_test.go
+++ b/pkg/trait/logging_test.go
@@ -154,3 +154,16 @@ func TestJsonLoggingTrait(t *testing.T) {
assert.Equal(t, "${camel.k.logging.jsonPrettyPrint}",
env.ApplicationProperties["quarkus.log.console.json.pretty-print"])
assert.Equal(t, "", env.ApplicationProperties["quarkus.console.color"])
}
+
+func TestLoggingTraitDeprecationWarning(t *testing.T) {
+ env := createDefaultLoggingTestEnv(t)
+ loggingTrait := newLoggingTraitTrait()
+
+ configured, condition, err := loggingTrait.Configure(env)
+
+ require.NoError(t, err)
+ assert.True(t, configured)
+ assert.NotNil(t, condition)
+ assert.Contains(t, condition.message, "Logging trait is deprecated")
+ assert.Contains(t, condition.message, "Quarkus properties")
+}