[slf4j-dev] [JIRA] (SLF4J-389) SimpleLogger caches System.err and System.out
QOS.CH (JIRA)
noreply-jira at qos.ch
Sun Feb 26 13:46:00 CET 2017
[ https://jira.qos.ch/browse/SLF4J-389?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18227#comment-18227 ]
Hervé Boutemy commented on SLF4J-389:
-------------------------------------
back to SLF4J-389, which I didn't have time to report until now:
for normal uses, such "non caching" of System.out and System.err won't cause grief to normal Maven use
But if a plugin does play with System.out or System.err (for example when invoking some code that relies on System.out and System.err), the new bahaviour will cause issues: until now, the plugin didn't impact Maven output, but if caching in slf4j-simple has been disabled, the change will be visible
Is it possible to add a configuration to enable System.out/err cache? I don't think one behaviour or the other is really the right one: it's a choice that has to be done locally when integrating
> SimpleLogger caches System.err and System.out
> ---------------------------------------------
>
> Key: SLF4J-389
> URL: https://jira.qos.ch/browse/SLF4J-389
> Project: SLF4J
> Issue Type: Bug
> Affects Versions: 1.7.x
> Reporter: Igor Polevoy
> Assignee: Ceki Gülcü
> Fix For: 1.7.23
>
>
> We usually use SimpleLogger in tests, and some other binding when running in production.
> In some cases, our tests depend on log values logged through the logger during a test.
> Unfortunately between version 1.7.0 and 1.7.1 this ability has been removed, since the SimpleLogger now caches the system stream in a static initialiser.
> Here is the code that broke this approach:
> https://github.com/qos-ch/slf4j/commit/996ccc7ca507994465c069554954ecb01890d4d5
> Basically, we would write a test:
> {quote}PrintStream err = System.err;
> PrintStream temp = new PrintStream(some buffer here);
> System.err = temp;
> // run tests
> System.err = err;
> // here we assert that the temp stream contains values we expect{quote}
> Unfortunately SimpleLogger now caches the system stream and never releases it, meaning swapping the streams to catch the output is not possible.
--
This message was sent by Atlassian JIRA
(v7.3.1#73012)
More information about the slf4j-dev
mailing list