On 2019/05/24 12:11:19, Apache <ralph.go...@dslextreme.com> wrote: 
> The code you highlight is there to include the throwable converter if one is 
> not specified. If you add your own throwable converter then handlesThrowable 
> will be true and that code won’t be run.
> 
> You can also hide the exception with %noex.
> 
> Under what circumstances do you want to hide the exception? You may be able 
> to use a pattern selector to choose the pattern.
> 
> Ralph
> 
> > On May 24, 2019, at 4:14 AM, Gaurav <gaurav9...@gmail.com> wrote:
> > 
> > 
> > 
> >> On 2019/05/22 15:36:11, "Carter Kozak" <cko...@ckozak.net> wrote: 
> >> Once you've implemented a LogEventPatternConverter which overrides 
> >> "handlesThrowable" to return true, you will also need to use that pattern 
> >> in the PatternLayout pattern. This can be a little bit confusing since the 
> >> pattern layout will automatically add a default throwable pattern 
> >> converter to the end without specifying "%ex". This is because 
> >> alwaysWriteExceptions defaults to true, and the pattern doesn't already 
> >> include a converter which returns true from "handlesThrowable". So 
> >> updating the pattern "%m%n" to "%m%n%noMessageThrowable" (replacing 
> >> "noMessageThrowable" with the pattern you have specified on your 
> >> converter).
> >> 
> >> Apologies if I've misunderstood the issue.
> >> 
> >> -ck
> >>> On Wed, May 22, 2019, at 11:21, Matt Sicker wrote:
> >>> Did you include the @ConverterKeys annotation on your converters? You
> >>> shouldn't need to make a new layout I think.
> >>> 
> >>>> On Wed, 22 May 2019 at 06:18, 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.
> >>> 
> >>> 
> >>> 
> >>> -- 
> >>> Matt Sicker <boa...@gmail.com>
> >>> 
> >> Hi Ralph,
> > I need to support handling of throwables in logging statements.
> > Case 1: If the layout is PatternLayout, then keep using original log4j2 
> > layout functionality.
> > Case 2: If the layout is my custom layout, then just hide the exception 
> > message and keep other layout features as is!
> > 
> > *Note: The log4j2.xml configuration will contain rolling file appenders 
> > where they could either have a patternlayout or a customlayout.
> > 
> > If I just create a new PatternConverter, then it will replace log4j2's 
> > converter keys such as %ex.
> > 
> > I cannot just create a new PatternConverter for this use case, as to handle 
> > throwables, "PatternParser" class has the following code- 
> > 
> > if (alwaysWriteExceptions && !handlesThrowable) {
> >            final LogEventPatternConverter pc = 
> > ExtendedThrowablePatternConverter.newInstance(config, null);
> >            list.add(new PatternFormatter(pc, FormattingInfo.getDefault()));
> > }
> > 
> > Here, the only way to hide throwable message is to replace 
> > "ExtendedThrowablePatternConverter" with my "CustomPatternConverter".
> > 
> > Please assist if there is a better way to do this.
> > 
> > 
> > 
> 
> 
> 
Excellent guidelines.

Reply via email to