[
https://issues.apache.org/jira/browse/LOG4J2-621?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15252419#comment-15252419
]
ASF GitHub Bot commented on LOG4J2-621:
---------------------------------------
Github user lkamal commented on the pull request:
https://github.com/apache/logging-log4j2/pull/28#issuecomment-213056481
Hi @garydgregory
I am sorry, I did not understood your suggestion correctly. Let me try to
elaborate a bit on the approach I took, so that you could point me in correct
direction further.
Exactly, current implementation supports below.
```
%c{3}
input: org.apache.commons.Foo
output: apache.commons.Foo
```
Above is done via the LoggerPatternConverter class which internally uses
the NameAbbreviator.getAbbreviator(final String pattern) to get an instance of
a suitable NameAbbreviator (in this case MaxElementAbbreviator).
And %c{-3} is not yet supported.
So I tried to implement this feature by updating the
NameAbbreviator.getAbbreviator(final String pattern) method to return another
new instance of NameAbbreviator named DropFirstElementsAbbreviator which
supports negative numbers in the "pattern" parameter.
With that the below is supported.
```
%c{-3}
input: org.apache.commons.Foo
output: Foo
```
Could you please provide some thoughts based on this?
Thanks a lot.
> Pattern To Drop First X Package Parts
> -------------------------------------
>
> Key: LOG4J2-621
> URL: https://issues.apache.org/jira/browse/LOG4J2-621
> Project: Log4j 2
> Issue Type: Wish
> Components: Layouts
> Affects Versions: 2.0-rc1
> Reporter: Lee Theobald
> Priority: Trivial
> Attachments: LOG4J2-621_01.patch
>
>
> Currently you can have a pattern that will print out the last X parts of you
> package. So if my package was {{uk.co.ltheobald.foo.bar}}, then using
> {{%logger\{2\}}} will print {{foo.bar}}. But when I have a number of
> different package levels, this becomes less useful (in my opinion).
> What I'd find more useful is the inverse where I can ditch the first X parts.
> Something like {{%logger\{-3\}}} for example. That way I'd end up with:
> {{uk.co.ltheobald.Main logging}} as {{Main}}
> {{uk.co.ltheobald.foo.MyClass}} logging as {{foo.MyClass}}
> {{uk.co.ltheobald.foo.bar.MyOtherClass}} logging as {{foo.bar.MyOtherClass}}
> Removing from the start of the logger name allows me to consistently trim off
> package names that I know are always the same. I'll see if I can produce a
> code example for this if I get time but I wanted to log it in the meanwhile.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]