mirror of
https://github.com/openshift/openshift-docs.git
synced 2026-02-05 12:46:18 +01:00
65 lines
1.9 KiB
Plaintext
65 lines
1.9 KiB
Plaintext
// Module included in the following assemblies:
|
|
//
|
|
// * observability/logging/logging-6.0/log6x-clf.adoc
|
|
|
|
:_mod-docs-content-type: PROCEDURE
|
|
[id="log6x-multiline-except_{context}"]
|
|
= Enabling multi-line exception detection
|
|
|
|
Enables multi-line error detection of container logs.
|
|
|
|
[WARNING]
|
|
====
|
|
Enabling this feature could have performance implications and may require additional computing resources or alternate logging solutions.
|
|
====
|
|
|
|
Log parsers often incorrectly identify separate lines of the same exception as separate exceptions. This leads to extra log entries and an incomplete or inaccurate view of the traced information.
|
|
|
|
.Example java exception
|
|
[source,java]
|
|
----
|
|
java.lang.NullPointerException: Cannot invoke "String.toString()" because "<param1>" is null
|
|
at testjava.Main.handle(Main.java:47)
|
|
at testjava.Main.printMe(Main.java:19)
|
|
at testjava.Main.main(Main.java:10)
|
|
----
|
|
|
|
* To enable logging to detect multi-line exceptions and reassemble them into a single log entry, ensure that the `ClusterLogForwarder` Custom Resource (CR) contains a `detectMultilineErrors` field under the `.spec.filters`.
|
|
|
|
.Example ClusterLogForwarder CR
|
|
[source,yaml]
|
|
----
|
|
apiVersion: "observability.openshift.io/v1"
|
|
kind: ClusterLogForwarder
|
|
metadata:
|
|
name: <log_forwarder_name>
|
|
namespace: <log_forwarder_namespace>
|
|
spec:
|
|
serviceAccount:
|
|
name: <service_account_name>
|
|
filters:
|
|
- name: <name>
|
|
type: detectMultilineException
|
|
pipelines:
|
|
- inputRefs:
|
|
- <input-name>
|
|
name: <pipeline-name>
|
|
filterRefs:
|
|
- <filter-name>
|
|
outputRefs:
|
|
- <output-name>
|
|
----
|
|
|
|
== Details
|
|
When log messages appear as a consecutive sequence forming an exception stack trace, they are combined into a single, unified log record. The first log message's content is replaced with the concatenated content of all the message fields in the sequence.
|
|
|
|
The collector supports the following languages:
|
|
|
|
* Java
|
|
* JS
|
|
* Ruby
|
|
* Python
|
|
* Golang
|
|
* PHP
|
|
* Dart
|