On 2019/05/16 14:59:56, Matt Sicker <boa...@gmail.com> wrote: 
> Instead of extending the plugin classes, you can create your own
> plugins. PatternConverters are relatively trivial plugins, so I
> wouldn't worry too much about code duplication.
> 
> I could be missing a feature, though.
> 
> On Thu, 16 May 2019 at 09:32, Gaurav <gaurav9...@gmail.com> wrote:
> >
> > Hi,
> >
> > I want to hide the message in the throwable.
> >
> > What I've tried -
> > 1. Create a custom layout by extending AbstractStringLayout.
> > 2. Create a pattern parser.
> > 3. Create a pattern converter by extending ThrowablePatternConverter.
> >
> > Is there a simpler way to do this?
> >
> > In log4j1.2, it was simple to just extend the classes, but the classes in 
> > log4j2 are final.
> >
> > Please assist.
> 
> 
> 
> -- 
> Matt Sicker <boa...@gmail.com>
> Hi,
I've created - 
1.A custom pattern converter plugin extending LogEventPatternConverter
2.A custom layout plugin extending AbstractStringLayout.
3.A custom pattern parser similar to "PatternParser" class in log4j2.

But, as, I am dealing with throwables and cannot modify log4j2 jar, I need to 
plug the custom pattern converter instance in my parser class.

if (alwaysWriteExceptions && !handlesThrowable) {
            final LogEventPatternConverter pc = 
TestPatternConverter.newInstance();
            list.add(new PatternFormatter(pc, FormattingInfo.getDefault()));
}

 But, at the startup, it is throwing the following exception - 

Caused by: java.lang.ClassCastException: com.test.TestPatternParser cannot be 
cast to org.apache.logging.log4j.core.pattern.PatternParser
        at 
org.apache.logging.log4j.core.layout.PatternLayout.createPatternParser(PatternLayout.java:244)
        at 
org.apache.logging.log4j.core.layout.PatternLayout$SerializerBuilder.build(PatternLayout.java:375)
        ... 32 more

Please assist.

Reply via email to