Regression - LogBox ConsoleAppender no longer writes to System.out stream in 5.3.5

Description

As of 5.3.5, The LogBox/ColdBox ConsoleAppender has stopped working for debug/info/warn messages, though it still works for error/fatal messages. The debug/info/warn messages use the System.out print buffer

The error/fatal messages use the System.err print buffer.

For some reason, systemOutput() still works, but we can't use that for Adobe CF compatibility.

Environment

None

Activity

Show:
Michael Offner
April 9, 2020, 5:53 PM

this is expected see

before that setting did not work as it should, now it does. you cannot expect system.out to end in the console. use the function system output instead.

Brad Wood
April 9, 2020, 6:37 PM

you cannot expect system.out to end in the console.


But that's not really an ok change. java.lang.System.out.println should write to the console output of a server. That's the standard for every Java app that's ever existed. Why does this change need to be made? I understand if you want to redirect Lucee's logging elsewhere, lucee can put its logs where it wants (though I would point out that console logging IS the standard for docker/container deployments, so I'd stick with it) but for my application code, a java-based app should be able to write to the console using the system.out print buffer. That should not have changed.

As it stands LogBox's ConsoleAppender is now completely broken on Lucee 5.3.5 Also, let me remind you that messages sent to the out buffer are not sent to a log file at all. From what I can tell, they go nowhere! (I have checked all the log files) That isn't really an acceptable

use the function system output instead.

I addressed why that is not a valid workaround in the ticket description.

Michael Offner
April 9, 2020, 8:59 PM

changed default target to system

Michael Offner
April 9, 2020, 9:03 PM

best use SystemOutput if you need to write to console, System.out|err not necessary writes to the console anyway, as you can see in the doc

https://docs.oracle.com/javase/7/docs/api/java/lang/System.html#err

Brad Wood
April 9, 2020, 10:07 PM

Thanks for helping address this.

For anyone on Lucee 5.3.5, you can merge these CFConfig settings into your .cfconfig.json file to get the old behavior back:

Or set them manually like so:

Fixed

Assignee

Unassigned

Reporter

Brad Wood

Priority

New

Labels

Fix versions

Sprint

None

Affects versions

Configure