[log4j] PatternLayout %ex{filters(package,package,...)} not implemented?

Janaka Bandara <[email protected]>
Newsgroups gmane.comp.jakarta.log4j.user
Message-ID <CADA4SuMdm2Wv2cu2GKUGxpzCAyGy_HPEMK=ws+G1FFsOJFHPCg@mail.gmail.com>
Hello everyone,

PatternLayout (https://logging.apache.org/log4j/2.x/manual/layouts.html#PatternLayout)
advertises this parameter syntax, to allow filtering undesired stack
frames from logged stacktraces: `%ex{filters(package,list)}`

> ex|exception|throwable
>
> {filters(package,package,...)}
>
> Use {filters(packages)} where packages is a list of package names to suppress matching stack frames from stack traces.


However on 2.17.1 (latest) when I use such a pattern:

`<PatternLayout pattern="%d{ISO8601} %5p %c{1} %m%n%ex{filters(org.p2)}"/>`

no filtering happens, and I still get stacktraces like:

```
2022-02-14T07:25:23,048 ERROR TestLog error
java.lang.IllegalStateException: Oh no
	at org.p2.Foo.run(Foo.java:5)
	at com.p1.Bar.run(Bar.java:7)
	at org.p2.Bar.run(Bar.java:5)
	at com.p1.Foo.run(Foo.java:7)
	at TestLog.main(TestLog.java:11)
```


Per my understanding, above config should remove the two `at
org.p2...` frames/lines from the stacktrace.

Turning off `alwaysWriteExceptions` makes no change.


Looking at the `org.apache.logging.log4j.core.impl.ThrowableFormatOptions#newInstance(..)`
codebase I see that the `filters` parameter is parsed and loaded to
`ThrowableFormatOptions` properly; but in the actual
`org.apache.logging.log4j.core.pattern.ThrowablePatternConverter#formatOption(..)`
I cannot find any stack frame filtering logic using `filters` config.
So to me it seems like `filters` functionality is not yet implemented
(although I could not find any documentation/discussions to back my
suspicion).


I would be happy to contribute a filtering implementation honoring the
already documented specification; however first I would like to
confirm if I'm correct so far, or if I have missed something.

TIA!

-- 
Janaka Bandara
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.