0

[fuchsia] Clean up logging to the Fuchsia logger

This improves readability for the code responsible for logging to the
Fuchsia logger service. This also skips instantiating a variable if no
logger is available.

Bug: 1188820
Change-Id: I39d22a2f8a934e115af7ad95728432a60bfc2dab
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2819363
Reviewed-by: David Dorwin <ddorwin@chromium.org>
Reviewed-by: Wez <wez@chromium.org>
Commit-Queue: Fabrice de Gans-Riberi <fdegans@chromium.org>
Cr-Commit-Position: refs/heads/master@{#873045}
This commit is contained in:
Fabrice de Gans-Riberi
2021-04-15 21:09:38 +00:00
committed by Chromium LUCI CQ
parent 092c77c837
commit fb94dff8bf

@ -346,6 +346,30 @@ void CloseLogFileUnlocked() {
g_logging_destination &= ~LOG_TO_FILE;
}
#if defined(OS_FUCHSIA)
inline fx_log_severity_t LogSeverityToFuchsiaLogSeverity(LogSeverity severity) {
switch (severity) {
case LOGGING_INFO:
return FX_LOG_INFO;
case LOGGING_WARNING:
return FX_LOG_WARNING;
case LOGGING_ERROR:
return FX_LOG_ERROR;
case LOGGING_FATAL:
// Don't use FX_LOG_FATAL, otherwise fx_logger_log() will abort().
return FX_LOG_ERROR;
}
if (severity > -3) {
// LOGGING_VERBOSE levels 1 and 2.
return FX_LOG_DEBUG;
}
// LOGGING_VERBOSE levels 3 and higher, or incorrect levels.
return FX_LOG_TRACE;
}
#endif // defined (OS_FUCHSIA)
} // namespace
#if defined(DCHECK_IS_CONFIGURABLE)
@ -401,7 +425,7 @@ bool BaseInitLoggingImpl(const LoggingSettings& settings) {
const char* log_tag_data = log_tag.data();
fx_logger_config_t config = {
.min_severity = g_vlog_info ? FX_LOG_DEBUG : FX_LOG_INFO,
.min_severity = g_vlog_info ? FX_LOG_TRACE : FX_LOG_INFO,
.console_fd = -1,
.tags = &log_tag_data,
.num_tags = 1,
@ -778,35 +802,14 @@ LogMessage::~LogMessage() {
__android_log_write(priority, kAndroidLogTag, str_newline.c_str());
#endif
#elif defined(OS_FUCHSIA)
fx_log_severity_t severity = FX_LOG_INFO;
switch (severity_) {
case LOGGING_INFO:
severity = FX_LOG_INFO;
break;
case LOGGING_WARNING:
severity = FX_LOG_WARNING;
break;
case LOGGING_ERROR:
severity = FX_LOG_ERROR;
break;
case LOGGING_FATAL:
// Don't use FX_LOG_FATAL, otherwise fx_logger_log() will abort().
severity = FX_LOG_ERROR;
break;
}
// TODO(https://crbug.com/1188820): Integrate verbose levels with the switch
// statement.
if (severity_ <= LOGGING_VERBOSE) {
severity = FX_LOG_DEBUG;
}
fx_logger_t* logger = fx_log_get_logger();
if (logger) {
// Temporarily remove the trailing newline from |str_newline|'s C-string
// representation, since fx_logger will add a newline of its own.
str_newline.pop_back();
fx_logger_log_with_source(logger, severity, nullptr, file_, line_,
str_newline.c_str() + message_start_);
fx_logger_log_with_source(
logger, LogSeverityToFuchsiaLogSeverity(severity_), nullptr, file_,
line_, str_newline.c_str() + message_start_);
str_newline.push_back('\n');
}
#endif // OS_FUCHSIA