On Thu, Sep 22, 2016 at 2:07 PM, Ralph Goers <ralph.go...@dslextreme.com> wrote:
> Is the default to keep the existing behavior? > Yes, it is. Gary > > Ralph > > On Sep 22, 2016, at 1:54 PM, Gary Gregory <garydgreg...@gmail.com> wrote: > > On Thu, Sep 22, 2016 at 1:07 PM, Gary Gregory <garydgreg...@gmail.com> > wrote: > >> On Thu, Sep 22, 2016 at 12:52 PM, Ralph Goers <ralph.go...@dslextreme.com >> > wrote: >> >>> Because Log4j users are far more inclined to want to use the formatting >>> we provide? What your change does is effectively disallow users from using >>> our exception formatting when logging to the servletContext. >>> >> >> No it does not. Now, if the user does nothing, for example uses "%m%n", >> the exception is still added to the messages as you pointed out. What you >> do get is double logging and I'll add an option to only use the servlet >> context API with the Throwable if a new attribute is set. >> > > I added a Builder to the ServletAppender, deprecated the factory method, > and added a new option: > > /** > * Logs with {@link ServletContext#log(String, Throwable)} if true > and with {@link ServletContext#log(String)} if false. > * > * @return whether to log a Throwable with the servlet context. > */ > public boolean isLogThrowables() { > return logThrowables; > } > > Gary > >> >> Gary >> >> >>> >>> Also, this breaks the current behavior. >>> >>> You really need to rethink this and provide an option or something on >>> the Appender to allow the user to control this. >>> >>> Please revert what you have committed so it doesn’t go out if I can get >>> to doing the release tonight. >>> >>> Ralph >>> >>> On Sep 22, 2016, at 11:42 AM, Gary Gregory <garydgreg...@gmail.com> >>> wrote: >>> >>> Since ServletContext is an interface, who knows what interesting work an >>> implementation will do with the Throwables. >>> >>> Another way to look at it is: Why should we hide the actual Throwable >>> from the ServletContext? >>> >>> Gary >>> >>> On Thu, Sep 22, 2016 at 10:23 AM, Ralph Goers <ralph.goers@dslextreme. >>> com> wrote: >>> >>>> Yes, and them immediately committed it. I am -1 on this commit until I >>>> get an explanation as to why what we currently do isn’t better. >>>> >>>> Ralph >>>> >>>> On Sep 22, 2016, at 9:29 AM, Gary Gregory <garydgreg...@gmail.com> >>>> wrote: >>>> >>>> I created https://issues.apache.org/jira/browse/LOG4J2-1608 >>>> >>>> Gary >>>> >>>> On Thu, Sep 22, 2016 at 8:22 AM, Matt Sicker <boa...@gmail.com> wrote: >>>> >>>>> Oh that explains it, thanks for the info! >>>>> >>>>> On 22 September 2016 at 10:21, Ralph Goers <ralph.go...@dslextreme.com >>>>> > wrote: >>>>> >>>>>> PatternLayout defaults to implicitly add %ex or one of its variations >>>>>> to your pattern if you don’t specify it. To disable exception logging you >>>>>> have to use %noex. >>>>>> >>>>>> Ralph >>>>>> >>>>>> On Sep 22, 2016, at 6:55 AM, Matt Sicker <boa...@gmail.com> wrote: >>>>>> >>>>>> I usually don't even include %exception in my pattern layouts for >>>>>> some reason, probably because of the double logging. So I'd go with (1) >>>>>> as >>>>>> well. >>>>>> >>>>>> On 22 September 2016 at 02:59, Gary Gregory <garydgreg...@gmail.com> >>>>>> wrote: >>>>>> >>>>>>> Hi All, >>>>>>> >>>>>>> The method >>>>>>> org.apache.logging.log4j.web.appender.ServletAppender.append(LogEvent) >>>>>>> is defined as: >>>>>>> >>>>>>> @Override >>>>>>> public void append(final LogEvent event) { >>>>>>> servletContext.log(((AbstractStringLayout) >>>>>>> getLayout()).toSerializable(event)); >>>>>>> } >>>>>>> >>>>>>> Instead of: >>>>>>> >>>>>>> @Override >>>>>>> public void append(final LogEvent event) { >>>>>>> servletContext.log(((AbstractStringLayout) >>>>>>> getLayout()).toSerializable(event)*, event.getThrown()*); >>>>>>> } >>>>>>> >>>>>>> Which does not give the best information we have to the servlet >>>>>>> context logging. >>>>>>> >>>>>>> The tricky part is that to avoid logging the exception twice like in >>>>>>> our test org.apache.logging.log4j.web.ServletAppenderTest. To avoid >>>>>>> the double logging, we could (1) document not using a %exception in the >>>>>>> pattern layout. >>>>>>> >>>>>>> That or (yikes) (2) provide a variation of the toSerializable(event) >>>>>>> like toSerializable(event, false), where the boolean is an >>>>>>> ignoreException >>>>>>> parameter. It seems there are plenty of places where exceptions are >>>>>>> treated >>>>>>> specially already, this would be another. >>>>>>> >>>>>>> I like (1) better because it is simpler. >>>>>>> >>>>>>> Thoughts? >>>>>>> >>>>>>> Thank you, >>>>>>> Gary >>>>>>> >>>>>>> >>>>>>> -- >>>>>>> E-Mail: garydgreg...@gmail.com | ggreg...@apache.org >>>>>>> <ggreg...@apache.org> >>>>>>> Java Persistence with Hibernate, Second Edition >>>>>>> <http://www.manning.com/bauer3/> >>>>>>> JUnit in Action, Second Edition <http://www.manning.com/tahchiev/> >>>>>>> Spring Batch in Action <http://www.manning.com/templier/> >>>>>>> Blog: http://garygregory.wordpress.com >>>>>>> Home: http://garygregory.com/ >>>>>>> Tweet! http://twitter.com/GaryGregory >>>>>>> >>>>>> >>>>>> >>>>>> >>>>>> -- >>>>>> Matt Sicker <boa...@gmail.com> >>>>>> >>>>>> >>>>>> >>>>> >>>>> >>>>> -- >>>>> Matt Sicker <boa...@gmail.com> >>>>> >>>> >>>> >>>> >>>> -- >>>> E-Mail: garydgreg...@gmail.com | ggreg...@apache.org >>>> <ggreg...@apache.org> >>>> Java Persistence with Hibernate, Second Edition >>>> <http://www.manning.com/bauer3/> >>>> JUnit in Action, Second Edition <http://www.manning.com/tahchiev/> >>>> Spring Batch in Action <http://www.manning.com/templier/> >>>> Blog: http://garygregory.wordpress.com >>>> Home: http://garygregory.com/ >>>> Tweet! http://twitter.com/GaryGregory >>>> >>>> >>>> >>> >>> >>> -- >>> E-Mail: garydgreg...@gmail.com | ggreg...@apache.org >>> <ggreg...@apache.org> >>> Java Persistence with Hibernate, Second Edition >>> <http://www.manning.com/bauer3/> >>> JUnit in Action, Second Edition <http://www.manning.com/tahchiev/> >>> Spring Batch in Action <http://www.manning.com/templier/> >>> Blog: http://garygregory.wordpress.com >>> Home: http://garygregory.com/ >>> Tweet! http://twitter.com/GaryGregory >>> >>> >>> >> >> >> -- >> E-Mail: garydgreg...@gmail.com | ggreg...@apache.org >> <ggreg...@apache.org> >> Java Persistence with Hibernate, Second Edition >> <http://www.manning.com/bauer3/> >> JUnit in Action, Second Edition <http://www.manning.com/tahchiev/> >> Spring Batch in Action <http://www.manning.com/templier/> >> Blog: http://garygregory.wordpress.com >> Home: http://garygregory.com/ >> Tweet! http://twitter.com/GaryGregory >> > > > > -- > E-Mail: garydgreg...@gmail.com | ggreg...@apache.org > <ggreg...@apache.org> > Java Persistence with Hibernate, Second Edition > <http://www.manning.com/bauer3/> > JUnit in Action, Second Edition <http://www.manning.com/tahchiev/> > Spring Batch in Action <http://www.manning.com/templier/> > Blog: http://garygregory.wordpress.com > Home: http://garygregory.com/ > Tweet! http://twitter.com/GaryGregory > > > -- E-Mail: garydgreg...@gmail.com | ggreg...@apache.org Java Persistence with Hibernate, Second Edition <http://www.manning.com/bauer3/> JUnit in Action, Second Edition <http://www.manning.com/tahchiev/> Spring Batch in Action <http://www.manning.com/templier/> Blog: http://garygregory.wordpress.com Home: http://garygregory.com/ Tweet! http://twitter.com/GaryGregory