mirror of
https://github.com/openjdk/jdk.git
synced 2025-09-20 02:54:35 +02:00
8153074: UL: Show output option in VM.log jcmd
Reviewed-by: dholmes, mlarsson
This commit is contained in:
parent
2cede6dbc1
commit
c02ce6ab61
5 changed files with 30 additions and 11 deletions
|
@ -415,17 +415,8 @@ void LogConfiguration::describe_available(outputStream* out){
|
|||
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<LogDecorators::Decorator>(d);
|
||||
if (_outputs[i]->decorators().is_decorator(decorator)) {
|
||||
out->print("%s%s", delimiter, LogDecorators::name(decorator));
|
||||
*delimiter = ',';
|
||||
}
|
||||
}
|
||||
out->print("#" SIZE_FORMAT ": ", i);
|
||||
_outputs[i]->describe(out);
|
||||
out->cr();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -428,3 +428,13 @@ char* LogFileOutput::make_file_name(const char* file_name,
|
|||
result[result_len] = '\0';
|
||||
return result;
|
||||
}
|
||||
|
||||
void LogFileOutput::describe(outputStream *out) {
|
||||
LogOutput::describe(out);
|
||||
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));
|
||||
}
|
||||
|
||||
|
|
|
@ -85,6 +85,7 @@ class LogFileOutput : public LogFileStreamOutput {
|
|||
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);
|
||||
|
||||
virtual const char* name() const {
|
||||
return _name;
|
||||
|
|
|
@ -83,3 +83,18 @@ void LogOutput::add_to_config_string(const LogTagSet* ts, LogLevelType level) {
|
|||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void LogOutput::describe(outputStream *out) {
|
||||
out->print("%s ", 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<LogDecorators::Decorator>(d);
|
||||
if (decorators().is_decorator(decorator)) {
|
||||
out->print("%s%s", delimiter, LogDecorators::name(decorator));
|
||||
*delimiter = ',';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -83,6 +83,8 @@ class LogOutput : public CHeapObj<mtLogging> {
|
|||
// Do nothing by default.
|
||||
}
|
||||
|
||||
virtual void describe(outputStream *out);
|
||||
|
||||
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;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue