| // Copyright 2018 The Fuchsia Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| // |
| // Entry points used by clients. |
| |
| #ifndef LIB_SYSLOG_GLOBAL_H_ |
| #define LIB_SYSLOG_GLOBAL_H_ |
| |
| #include <lib/syslog/logger.h> |
| |
| __BEGIN_CDECLS |
| |
| // Gets the global logger for the process to which log messages emitted |
| // using the FX_LOG macros will be written. Returns NULL if logging is |
| // not configured. |
| fx_logger_t* fx_log_get_logger(void); |
| |
| // Returns true if writing messages with the given severity is enabled in the |
| // global logger. |
| static inline bool fx_log_is_enabled(fx_log_severity_t severity) { |
| fx_logger_t* logger = fx_log_get_logger(); |
| return logger && severity >= fx_logger_get_min_severity(logger); |
| } |
| |
| // Initializes the logging infrastructure with the specified configuration. |
| // Returns |ZX_ERR_BAD_STATE| if logging has already been initialized. |
| // If |console_fd| and |log_service_channel| are invalid in |config|, |
| // this function chooses a default destination for the log. |
| // |config| can be safely deallocated after this function returns. |
| // |
| // global logger would be deallocated once program ends. |
| zx_status_t fx_log_init_with_config(const fx_logger_config_t* config); |
| |
| // Initializes the logging infrastructure for this process using default |
| // parameters. Returns |ZX_ERR_BAD_STATE| if logging has already been |
| // initialized. |
| // |
| // global logger would be deallocated once program ends. |
| zx_status_t fx_log_init(void); |
| |
| // Returns true if writing messages with the given severity is enabled in the |
| // global logger. |severity| is one of DEBUG, INFO, WARNING, ERROR, or FATAL. |
| #define FX_LOG_IS_ENABLED(severity) (fx_log_is_enabled(FX_LOG_##severity)) |
| |
| // Returns true if writing messages with the given verbosity is enabled in the |
| // global logger. |verbosity| is positive number. |
| #define FX_VLOG_IS_ENABLED(verbosity) (fx_log_is_enabled(-(verbosity))) |
| |
| #define _FX_LOG_SET_SEVERITY(severity) \ |
| do { \ |
| fx_logger_t* logger = fx_log_get_logger(); \ |
| if (logger) { \ |
| fx_logger_set_min_severity(logger, (severity)); \ |
| } \ |
| } while (0) |
| |
| // Sets severity for global logger. |
| // |severity| is one of DEBUG, INFO, WARNING, ERROR, or FATAL. |
| #define FX_LOG_SET_SEVERITY(severity) _FX_LOG_SET_SEVERITY(FX_LOG_##severity) |
| |
| // Sets verbosity for global logger. |
| // |verbosity| is positive number. Logger severity is set to -verbosity |
| #define FX_LOG_SET_VERBOSITY(verbosity) _FX_LOG_SET_SEVERITY(-(verbosity)) |
| |
| #define _FX_LOG(severity, tag, message) \ |
| do { \ |
| fx_logger_t* logger = fx_log_get_logger(); \ |
| if (logger && fx_logger_get_min_severity(logger) <= (severity)) { \ |
| fx_logger_log(logger, (severity), (tag), (message)); \ |
| } \ |
| } while (0) |
| |
| #define _FX_LOGF(severity, tag, message, ...) \ |
| do { \ |
| fx_logger_t* logger = fx_log_get_logger(); \ |
| if (logger && fx_logger_get_min_severity(logger) <= (severity)) { \ |
| fx_logger_logf(logger, (severity), (tag), (message), \ |
| __VA_ARGS__); \ |
| } \ |
| } while (0) |
| |
| #define _FX_LOGVF(severity, tag, message, args) \ |
| do { \ |
| fx_logger_t* logger = fx_log_get_logger(); \ |
| if (logger && fx_logger_get_min_severity(logger) <= (severity)) { \ |
| fx_logger_logvf(logger, (severity), (tag), (message), (args)); \ |
| } \ |
| } while (0) |
| |
| // Writes a message to the global logger. |
| // |severity| is one of DEBUG, INFO, WARNING, ERROR, FATAL |
| // |tag| is a tag to associated with the message, or NULL if none. |
| // |message| is the message to write, or NULL if none. |
| #define FX_LOG(severity, tag, message) _FX_LOG((FX_LOG_##severity), tag, message) |
| |
| // Writes formatted message to the global logger. |
| // |severity| is one of DEBUG, INFO, WARNING, ERROR, FATAL |
| // |tag| is a tag to associated with the message, or NULL if none. |
| // |message| is the message to write, or NULL if none. |
| #define FX_LOGF(severity, tag, message, ...) _FX_LOGF((FX_LOG_##severity), tag, message, __VA_ARGS__) |
| |
| // Writes formatted message to the global logger using vaargs |
| // |severity| is one of DEBUG, INFO, WARNING, ERROR, FATAL |
| // |tag| is a tag to associated with the message, or NULL if none. |
| // |message| is the message to write, or NULL if none. |
| // |args| are the arguments to |message|. |
| #define FX_LOGVF(severity, tag, message, args) _FX_LOGVF((FX_LOG_##severity), tag, message, args) |
| |
| // Writes verbose message to the global logger. |
| // |verbosity| is positive integer. |
| // |tag| is a tag to associated with the message, or NULL if none. |
| // |message| is the message to write, or NULL if none. |
| #define FX_VLOG(verbosity, tag, message) _FX_LOG(-(verbosity), tag, message) |
| |
| // Writes formatted verbose message to the global logger. |
| // |verbosity| is positive integer. |
| // |tag| is a tag to associated with the message, or NULL if none. |
| // |message| is the message to write, or NULL if none. |
| #define FX_VLOGF(verbosity, tag, message, ...) _FX_LOGF(-(verbosity), tag, message, __VA_ARGS__) |
| |
| // Writes formatted verbose message to the global logger using vaargs |
| // |verbosity| is positive integer. |
| // |tag| is a tag to associated with the message, or NULL if none. |
| // |message| is the message to write, or NULL if none. |
| // |args| are the arguments to |message|. |
| #define FX_VLOGVF(verbosity, tag, message, args) _FX_LOGVF(-(verbosity), tag, message, args) |
| |
| __END_CDECLS |
| |
| #endif // LIB_SYSLOG_GLOBAL_H_ |