Uploaded image for project: 'JBoss Log Manager'
  1. JBoss Log Manager
  2. LOGMGR-117

Fork Log4J ConosleAppender to simply handling of calls to System.out

XMLWordPrintable

    • Icon: Enhancement Enhancement
    • Resolution: Done
    • Icon: Major Major
    • 1.1.2.CR1
    • None
    • None
    • None

      While the use of ConsoleAppender in Log4J application logging configurations is discouraged, JBoss could probably do a better job of managing its use.

      Currently it's possible to encounter a deadlock if thread A invokes System.out.println() and thread B invokes Logger.info(). Thread A will get the lock on System.out (a java.io.PrintWriter), but then thread B will get the lock on the org.apache.log4j.ConsoleAppender. Then each thread is waiting on the other's lock.

      The suggested improvement (discussed with jperkins-rhn) is to fork Log4J's ConsoleAppender so that instead of calling System.out.println, it calls the real stdout.

      Bonus enhancement: Drop a WARN message to the system root logger discouraging the use of ConsoleAppender in application configurations.

              rhn-engineering-lgao Lin Gao
              rh-ee-klape Kyle Lape
              Votes:
              2 Vote for this issue
              Watchers:
              6 Start watching this issue

                Created:
                Updated:
                Resolved: