RFR: 8273104: Refactoring option parser for UL [v2]

Yasumasa Suenaga ysuenaga at openjdk.java.net
Tue Sep 7 03:08:38 UTC 2021


On Tue, 7 Sep 2021 01:43:03 GMT, Yasumasa Suenaga <ysuenaga at openjdk.org> wrote:

>> As we discussed in PR #4885 and in [its CSR](https://bugs.openjdk.java.net/browse/JDK-8271188), we want to introduce `foldmultilines` to stdout/err UL output. However we have no chance to configure `LogOutput` for stdout/err (`LogStdoutOutput`/`LogStderrOutput`) becasuse they will be instantiated statically in logFileStreamOutput.cpp.
>> 
>> So we need to refactor UL option parser to propagate options to all extended classes of `LogOutput`.
>> 
>> * Move `parse_option()` to `LogOutput` from `LogFileOutput`, then it becames public member.
>> * Introduce `set_option()` in `LogOutput` as a pure virtual member to apply options to each log output, then it is implemented in both `LogFileStreamOutput` and `LogFileOutput`.
>> * Move both `FoldMultilinesOptionKey` and `_fold_mulilines` in `LogFileStreamOutput` to private member because they are no longer to need to be public.
>> 
>> I want to send PR to introduce `foldmultilines` to stdout/err like https://github.com/YaSuenag/jdk/compare/ul-refactoring...YaSuenag:foldmultilines-for-stdout after this.
>
> Yasumasa Suenaga has updated the pull request incrementally with one additional commit since the last revision:
> 
>   Fix condition for error stream

Thanks David for your review!

> So my comment about foldMultiLines could only be true for stdout/err and only in the future when it is enabled for those.

I agree with you that the problem is not practical concern because the log which happens before argument processing is determinative, so I think we can excuse they are not folded. I'll check what logs can happen before argument processing.

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

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


More information about the hotspot-runtime-dev mailing list