Thanks, Daniel. That is the issue. I probably should have described it more clearly. Do you have a sense of a fix timeline? If there is a relatively prompt fix, I can backport it to our internal build instead of introducing churn in our many, many logging configuration files. If it is likely to be a long time, I'll go ahead and change the logging configs. Jeremy On Thu, Nov 9, 2017 at 7:09 AM, Daniel Fuchs <daniel.fuchs@oracle.com> wrote:
Sorry Jeremy,
I think I misread your issue.
The issue is that .handlers=X behaves differently than handlers=X I'm afraid I might have introduced this regression with https://bugs.openjdk.java.net/browse/JDK-8033661 :-(
The obvious workaround for now would be to use handlers= as documented in the logging.properties file.
For compatibility reasons then I think we unfortunately must continue to support ".handlers" as well, if that used to work in 8.
I logged https://bugs.openjdk.java.net/browse/JDK-8191033
best regards,
-- daniel
On 09/11/2017 12:36, Daniel Fuchs wrote:
Hi Jeremy,
Which jdk version/distribution are you using?
I see .level = INFO in the jdk9/master sources: http://hg.openjdk.java.net/jdk9/jdk9/jdk/file/tip/src/java. logging/share/conf/logging.properties
There should be no changes WRT the default level between 8 and 9.
best regards,
-- daniel
On 09/11/2017 01:09, Jeremy Manson wrote:
Hey folks,
I can't find reference to this in a relnote, so I thought I would ask. If we have the following files:
logging.properties:
# Set the level of the root logger .level = INFO
# Send the root logger's output to the console .handlers = java.util.logging.ConsoleHandler
Test.java: public class Test { public static void main(String[] args) { java.util.logging.Logger.getAnonymousLogger().info("Hi!"); } }
In Java 8, we will see console output, and in Java 9, we won't.
# Java 8 $ java -Djava.util.logging.config.file=logging.properties Test Nov 08, 2017 5:02:05 PM Test main INFO: Hi!
# Java 9 $ java -Djava.util.logging.config.file=logging.properties Test
I thought that, perhaps, a decision was made to have the empty string no longer mean the root logger, so I took it off of .handlers:
logging.properties:
# Set the level of the root logger .level = INFO
# Send the root logger's output to the console handlers = java.util.logging.ConsoleHandler
Success in the sense that this got me output in Java 9. However, .level still seems to work; if I then have:
# Set the level of the root logger .level = WARNING
# Send the root logger's output to the console handlers = java.util.logging.ConsoleHandler
it sets the root logger's level to WARNING.
I don't see any of this in a relnote anywhere, and I don't see an obvious bug about it anywhere. There seem to have been a fair few changes to java.util.logging in Java 9. Was a documented decision made to have .handlers stop meaning handlers on the root logger, but to allow .level to continue meaning level on the root logger? Or do I just have the wrong end of the stick on this?
Thanks!
Jeremy