[ 
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]

Reply via email to