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

Please facilitate subclassing Logger and LoggerContext (in org.apache.logging.log4j.core)

VotersWatch issueWatchersLinkCloneUpdate Comment AuthorReplace String in CommentUpdate Comment VisibilityDelete Comments
    XMLWordPrintableJSON

Details

    • New Feature
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 2.0-beta3
    • 2.0-beta5
    • Core
    • None

    Description

      I would like to create a custom logger, while reusing the org.apache.logging.log4j.core.Logger functionality.

      The following two changes would make subclassing possible:

      • change visibility of method Logger$PrivateConfig#logEvent(LogEvent) (line 265) from protected to public
      • change visibility of method LoggerContext#newInstance(LoggerContext, String) (line 310) from private to protected

      My use case is that I want to create an asynchronous Logger for low latency logging.
      This custom logger hands off control to a separate thread as early as possible. In my case, AsynchAppender is not a good match for my requirements, as with that approach (a) the logging call still needs to flow down the hierarchy to the appender, doing synchronization and creating objects at various points on the way, and (b) when serializing the LogEvent, the getSource() method is always called, which is expensive.

      Attachments

        1. FastLog4j-v2-for-beta4.zip
          226 kB
          Remko Popma
        2. LOG4J2-151-patch-LoggerContext.txt
          0.7 kB
          Remko Popma
        3. LOG4J2-151-patch-Logger.txt
          0.7 kB
          Remko Popma
        4. FastLog4j.zip
          551 kB
          Remko Popma

        Issue Links

        Activity

          This comment will be Viewable by All Users Viewable by All Users
          Cancel

          People

            rgoers Ralph Goers
            rpopma Remko Popma
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Slack

                Issue deployment