On 2019/05/22 17:47:56, Ralph Goers <ralph.go...@dslextreme.com> wrote: 
> PatternLayout isn’t really designed to use an alternate implementation of 
> PatternParser. Why do you need one? A custom Layout wouldn’t normally use a 
> PatternParser, only PatternLayout and you shouldn’t need to modify that 
> either.
> 
> Just create a new PatternConverter that does what you need it to do. 
> 
> Ralph
> 
> > On May 22, 2019, at 4:18 AM, Gaurav <gaurav9...@gmail.com> wrote:
> > 
> > 
> > 
> > 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.
> > 
> 
> 
> yes.
@Plugin(name = "ThrowablePatternConverter", category = "TestConverter")
@ConverterKeys({"ex", "throwable", "exception", "xEx", "xThrowable", 
"xException", "rEx", "rThrowable","rException"})

Reply via email to