You are viewing a plain text version of this content. The canonical link for it is here.
Posted to log4j-dev@logging.apache.org by "Bruce Brouwer (JIRA)" <ji...@apache.org> on 2014/07/15 14:55:04 UTC

[jira] [Assigned] (LOG4J2-514) ConsoleAppender closing System.out on Windows

     [ https://issues.apache.org/jira/browse/LOG4J2-514?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Bruce Brouwer reassigned LOG4J2-514:
------------------------------------

    Assignee: Bruce Brouwer

> ConsoleAppender closing System.out on Windows
> ---------------------------------------------
>
>                 Key: LOG4J2-514
>                 URL: https://issues.apache.org/jira/browse/LOG4J2-514
>             Project: Log4j 2
>          Issue Type: Bug
>          Components: Appenders
>    Affects Versions: 2.0-beta9
>         Environment: Windows 7 64-bit
> Oracle JDK 1.7.0_51
>            Reporter: Wolf480 Pl
>            Assignee: Bruce Brouwer
>         Attachments: LOG4J2-514.patch.txt
>
>
> If the Console appender is not specified in the configuration file, after the configuration is read, the Console appender is being destroyed, which causes it to release its OutputStreamManager, When this manager is released and closed, it checks if the stream is System.out or System.err, and if it is, doesn't close it. But on Windows, ConsoleAppender wraps the System.out into a WindowsAnsiOutputStream. The OutputStreamManager closes the stream when it's released, and the stream closes the underlaying System.out.
> proof: http://imageshack.com/a/img31/8296/cg6b.png
> -I think the easiest solution would be to use new FileOutputStream(FileDescriptor.out)) instead of System.out in ConsoleAppender implementation.- unfortunately, that would still cause System.out to be closed.
> A solution would be to wrap System.out with some FilterStream that overrides close() to do nothing.



--
This message was sent by Atlassian JIRA
(v6.2#6252)

---------------------------------------------------------------------
To unsubscribe, e-mail: log4j-dev-unsubscribe@logging.apache.org
For additional commands, e-mail: log4j-dev-help@logging.apache.org