Bug 1070452 - [GSS] (6.3.0) System.out.println() doesn't work when using per-deployment logging
Summary: [GSS] (6.3.0) System.out.println() doesn't work when using per-deployment log...
Keywords:
Status: CLOSED CURRENTRELEASE
Alias: None
Product: JBoss Enterprise Application Platform 6
Classification: JBoss
Component: Logging
Version: 6.2.0
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: DR0
: EAP 6.3.0
Assignee: James Perkins
QA Contact: Nikoleta Hlavickova
Russell Dickenson
URL:
Whiteboard:
Depends On:
Blocks: 1059857 1070453
TreeView+ depends on / blocked
 
Reported: 2014-02-26 21:30 UTC by Kyle Lape
Modified: 2018-12-05 17:27 UTC (History)
4 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Previous versions of JBoss EAP 6 carried a bug that prevented the `System.out.println()` method from printing to log files when per-deployment logging was in use. This bug was resolved with an upstream patch.
Clone Of:
: 1070453 (view as bug list)
Environment:
Last Closed: 2014-06-28 15:44:01 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)
Reproducer maven project (1.81 KB, application/x-bzip)
2014-04-28 19:10 UTC, Kyle Lape
no flags Details

Description Kyle Lape 2014-02-26 21:30:47 UTC
Say you have the file META-INF/log4j.xml:

<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="false">
  <appender name="FILE" class="org.apache.log4j.FileAppender">
    <param name="File" value="test.log"/>
    <param name="Append" value="true"/>
    <param name="DatePattern" value="'.'yyyy-MM-dd"/>
    <layout class="org.apache.log4j.PatternLayout">
      <param name="ConversionPattern" value="%d %-5p [%c:%L] %m%n"/>
    </layout>
  </appender>
  <category name="com.redhat.gss.logging">
    <priority value="INFO"/>
  </category>
  <root>
    <appender-ref ref="FILE"/>
  </root>
</log4j:configuration>

And then you do this in some application code:

    System.out.println("system.out.println statement");

This logging statement will not be logged on the console, server.log, or test.log.  It's nowhere to be found.

Comment 1 Kyle Lape 2014-02-26 22:01:02 UTC
This commit fixes the issue upstream:

https://github.com/jboss-logging/log4j-jboss-logmanager/commit/fbd434606173376c9be80d051cbf586c0a1e031b

But if that can't be backported as-is, then perhaps we need to figure out specifically what fixed the problem and use that to fix the issue in EAP 6.

Comment 2 Kabir Khan 2014-04-04 14:42:51 UTC
Setting to ON_QA since upgrade should fix this

Comment 3 Nikoleta Hlavickova 2014-04-28 14:44:23 UTC
Kyle,
could you please provide a reproducer for this issue? I tried the log4j.xml from the description (with log4j quickstart example application) and the logging statement is always logged in console and server.log (for both EAP 6.2.0.GA and EAP 6.3.0.ER2).

Comment 4 Kyle Lape 2014-04-28 19:10:14 UTC
Created attachment 890562 [details]
Reproducer maven project

To run reproducer, start JBoss and then run `mvn jboss-as:deploy`.  If you have JBOSS_HOME set in the reproducer environment, you can run ./request.sh, and this will invoke a JAX-WS enpoint that will log some messages via Log4J as well as System.out.println().  The script will then print the last few lines of the isolated Log4J log file created by the application.  

Before the patch is applied, the last line should be something like:

12:04:44,599 ERROR [some.other.LoggingClass] (http-/127.0.0.1:8080-1) ERROR

This is because the System.out.println() is not printed.  When the patch is applied, you should see something like this as the last line:

12:09:52,566 INFO  [stdout] (http-/127.0.0.1:8080-1) System.out goes here

Comment 5 Nikoleta Hlavickova 2014-04-29 06:34:40 UTC
Thank you, Kyle.

Comment 6 Nikoleta Hlavickova 2014-04-29 06:49:30 UTC
Verified with EAP 6.3.0 ER2.

Comment 7 sgilda 2014-05-12 19:57:32 UTC
Changed <literal></literal> tags in Doc Text to ticks (`) to fix Bug 1096865


Note You need to log in before you can comment on or make changes to this bug.