RFR: 8273471: Add foldmultilines to UL for stdout/err

Yasumasa Suenaga ysuenaga at openjdk.java.net
Wed Sep 8 09:21:24 UTC 2021


We've introduced `foldmultilines` to UL in [JDK-8271186](https://bugs.openjdk.java.net/browse/JDK-8271186) (PR #4885 ) to replace newline characters within a multiline log event with the character sequence '' and 'n'. It helps to work log shippers.

`foldmultilines` supports file output only. It is useful if it affects to stdout/err output because many container applications would redirect logs to stdout.

`foldmultilines` will be enabled after option processing, so note that the log what happens before it isn't folded. AFAICS following logs might happen.
They are not practical concern because the log which happens before option processing is determinative and does not have newline char (at least now), so I think we can excuse they are not folded.


share/logging/logConfiguration.cpp:379:        log_error(logging)("Missing terminating quote in -Xlog option '%s'", str);
share/logging/logConfiguration.cpp:397:    log_warning(logging)("Ignoring excess -Xlog options: "%s"", str);

share/prims/jvmtiTrace.cpp:91:      log_warning(arguments)("-XX:+TraceJVMTI specified, "

share/runtime/os.cpp:700:    log_warning(malloc, free)("os::malloc caught, " SIZE_FORMAT " bytes --> " PTR_FORMAT, size, p2i(ptr));
share/runtime/os.cpp:752:    log_warning(malloc, free)("os::realloc caught " PTR_FORMAT, p2i(memblock));
share/runtime/os.cpp:788:    log_warning(malloc, free)("os::free caught " PTR_FORMAT, p2i(memblock));


I checked them with `$ grep -nrE '(warning|error)' * | grep -i log | grep -vwE '(cds|gc|safepoint|thread|codecache|symboltable|stringtable|jfr|jvmti|jni|container|pagesize|metaspace|exceptions|nmt|attach|class|handshake|monitorinflation)' | grep -vwE '(log_info|log_debug)'`

In addition, we might see following logs which relate to UL:


[0.000s][error][logging] Error opening log file '/all-info.log': Permission denied
[0.000s][error][logging] Invalid tag 'aaa' in log selection.
[0.000s][error][logging] Invalid level 'aaa' in log selection.
[0.012s][error][logging] Invalid option 'aaa' for log output (file=all-info.log).
[0.021s][error][logging] Unable to log to file all-info.log with log file rotation: all-info.log is not a regular file
[0.012s][error][logging] Initialization of output 'file=all-info.log' using options 'aaa=bbb' failed.

-------------

Commit messages:
 - 8273471: Add foldmultilines to UL for stdout/err

Changes: https://git.openjdk.java.net/jdk/pull/5407/files
 Webrev: https://webrevs.openjdk.java.net/?repo=jdk&pr=5407&range=00
  Issue: https://bugs.openjdk.java.net/browse/JDK-8273471
  Stats: 76 lines in 3 files changed: 50 ins; 8 del; 18 mod
  Patch: https://git.openjdk.java.net/jdk/pull/5407.diff
  Fetch: git fetch https://git.openjdk.java.net/jdk pull/5407/head:pull/5407

PR: https://git.openjdk.java.net/jdk/pull/5407


More information about the hotspot-runtime-dev mailing list