--- old/src/share/vm/logging/logConfiguration.cpp 2016-06-30 18:25:09.125455207 +0900 +++ new/src/share/vm/logging/logConfiguration.cpp 2016-06-30 18:25:08.862347728 +0900 @@ -415,17 +415,7 @@ void LogConfiguration::describe_current_configuration(outputStream* out){ out->print_cr("Log output configuration:"); for (size_t i = 0; i < _n_outputs; i++) { - out->print("#" SIZE_FORMAT ": %s ", i, _outputs[i]->name()); - out->print_raw(_outputs[i]->config_string()); - out->print(" "); - char delimiter[2] = {0}; - for (size_t d = 0; d < LogDecorators::Count; d++) { - LogDecorators::Decorator decorator = static_cast(d); - if (_outputs[i]->decorators().is_decorator(decorator)) { - out->print("%s%s", delimiter, LogDecorators::name(decorator)); - *delimiter = ','; - } - } + _outputs[i]->describe(out, i); out->cr(); } } --- old/src/share/vm/logging/logFileOutput.cpp 2016-06-30 18:25:09.700257959 +0900 +++ new/src/share/vm/logging/logFileOutput.cpp 2016-06-30 18:25:09.546243825 +0900 @@ -428,3 +428,13 @@ result[result_len] = '\0'; return result; } + +void LogFileOutput::describe(outputStream *out, size_t index) { + LogOutput::describe(out, index); + out->print(" "); + + out->print("filecount=%u,filesize=" SIZE_FORMAT "%s", _file_count, + byte_size_in_proper_unit(_rotate_size), + proper_unit_for_byte_size(_rotate_size)); +} + --- old/src/share/vm/logging/logFileOutput.hpp 2016-06-30 18:25:10.290645475 +0900 +++ new/src/share/vm/logging/logFileOutput.hpp 2016-06-30 18:25:10.151299353 +0900 @@ -85,6 +85,7 @@ virtual int write(const LogDecorations& decorations, const char* msg); virtual int write(LogMessageBuffer::Iterator msg_iterator); virtual void force_rotate(); + virtual void describe(outputStream *out, size_t index); virtual const char* name() const { return _name; --- old/src/share/vm/logging/logOutput.cpp 2016-06-30 18:25:10.865448227 +0900 +++ new/src/share/vm/logging/logOutput.cpp 2016-06-30 18:25:10.699516332 +0900 @@ -83,3 +83,18 @@ break; } } + +void LogOutput::describe(outputStream *out, size_t index) { + out->print("#" SIZE_FORMAT ": %s ", index, name()); + out->print_raw(config_string()); + out->print(" "); + char delimiter[2] = {0}; + for (size_t d = 0; d < LogDecorators::Count; d++) { + LogDecorators::Decorator decorator = static_cast(d); + if (decorators().is_decorator(decorator)) { + out->print("%s%s", delimiter, LogDecorators::name(decorator)); + *delimiter = ','; + } + } +} + --- old/src/share/vm/logging/logOutput.hpp 2016-06-30 18:25:11.472337257 +0900 +++ new/src/share/vm/logging/logOutput.hpp 2016-06-30 18:25:11.338491640 +0900 @@ -83,6 +83,8 @@ // Do nothing by default. } + virtual void describe(outputStream *out, size_t index); + virtual const char* name() const = 0; virtual bool initialize(const char* options, outputStream* errstream) = 0; virtual int write(const LogDecorations& decorations, const char* msg) = 0;