fix: make %ex
behavior context-independent
#3919
Merged
+117
−49
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Historically, throwable pattern converters (
%ex
,%xEx
, etc.) behaved in a context-sensitive way:In version
2.25.0
, this was changed to insert a newline instead of a space, but the behavior was still dependent on surrounding context.What this change does
This PR removes the context-dependent behavior altogether and makes
%ex
expansion fully predictable, while remaining backward-compatible:When
%ex
is added implicitly becausealwaysWriteExceptions=true
:%n
, a plain%ex
is appended.%notEmpty{%n%ex}
is appended. This ensures exceptions are always clearly separated from the main log message by a newline, without adding extra characters when no exception is present.When
%ex
is explicitly included in the pattern by the user:Why
%ex
.Closes #3873