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

Improving log4j so it can easily be used with servlet logging

Attach filesAttach ScreenshotVotersWatch issueWatchersCreate sub-taskLinkCloneUpdate Comment AuthorReplace String in CommentUpdate Comment VisibilityDelete Comments


    • Type: Wish
    • Status: Resolved
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 2.0-rc2
    • Component/s: API
    • Labels:


      On May 30, 2010, at 11:49 AM, Thorbjørn Ravn Andersen wrote:

      There is one more thing that I would really like to see in log4j 2.0, namely the ability for a servlet to log to a servlet container using log4j (and in slf4j too but that is a different story). Currently that cannot be done, because there is no way for the code asking for the logger to pass a "this" reference to the logging framework.

      I would suggest that in log4j 2.0 the LoggerManager.getLogger() signature is changed to accept the class (as now), and a varargs of Objects. The objects are passed to the appender when needing to do the actual logging, allowing a ServletLoggerAppender to look for any object extending GenericServlet and invoke its log method.

      For client code it would mean that the logger object was retreived similar to:

      Logger log = Logger.getLogger(this.getClass(), this);

      We might even consider making the rule in log4j 2.0 that "the name of the logger is the full name of the class of the first object"[2]. In that case we could make do with:

      Logger log = Logger.getLogger(this);

      This would most likely also result in much other code being cleaner by allowing to drop the "getClass()" clause.

      What do you think?

      [1] http://java.sun.com/j2ee/1.4/docs/api/javax/servlet/GenericServlet.html#log%28java.lang.String%29

      [2] For backwards compatability instances of Class should be treated slightly different

      Thorbjørn Ravn Andersen "...plus... Tubular Bells!"

      The follows at http://thread.gmane.org/gmane.comp.jakarta.log4j.devel/15576




            • Assignee:
              carnold@apache.org Curt Arnold


              • Created:

                Issue deployment