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