Uploaded image for project: 'Log4j 2'
  1. Log4j 2
  2. LOG4J2-1608

ServletAppender does not provide throwable object to ServletContext

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 2.6.2
    • Fix Version/s: 2.7
    • Component/s: None
    • Labels:
      None

      Description

      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());
          }
      

      We should use javax.servlet.ServletContext.log(String, Throwable) instead of javax.servlet.ServletContext.log(String).

      We do 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.

      In addition the test and documentation should mention the use of %ex{none} to avoid appending exceptions to messages when using the ServletAppender.

        Attachments

          Activity

            People

            • Assignee:
              garydgregory Gary Gregory
              Reporter:
              garydgregory Gary Gregory
            • Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: