From 192ed9480b8b3e691772f098186437fc584b646b Mon Sep 17 00:00:00 2001 From: Ethrynto Date: Mon, 7 Jul 2025 00:19:31 +0300 Subject: [PATCH] Adjust default log level in logger --- cpp/src/phonenumbers/logger.h | 54 +++++++++++++++++------------------ 1 file changed, 26 insertions(+), 28 deletions(-) diff --git a/cpp/src/phonenumbers/logger.h b/cpp/src/phonenumbers/logger.h index 9d67f914f..4c42668f8 100644 --- a/cpp/src/phonenumbers/logger.h +++ b/cpp/src/phonenumbers/logger.h @@ -17,7 +17,6 @@ #ifndef I18N_PHONENUMBERS_LOGGER_H_ #define I18N_PHONENUMBERS_LOGGER_H_ -#include #include namespace i18n { @@ -25,79 +24,78 @@ namespace phonenumbers { using std::string; -enum { - LOG_FATAL = 1, - LOG_ERROR, - LOG_WARNING, - LOG_INFO, - LOG_DEBUG, +// Log levels used to control the verbosity of logging output. +enum LogLevel { + LOG_FATAL = 1, // Critical errors that terminate the program + LOG_ERROR, // Non-critical errors + LOG_WARNING, // Potential issues or warnings + LOG_INFO, // Informational messages + LOG_DEBUG, // Debugging messages }; +// Aliases for log levels to improve readability and compatibility. enum { DFATAL = LOG_FATAL, -// ERROR seems to be defined on MSVC, therefore don't overwrite it. -#ifndef ERROR +#ifndef ERROR // Avoid redefinition if ERROR is defined (e.g., in MSVC) ERROR = LOG_ERROR, #endif WARNING = LOG_WARNING, }; -// Subclass this abstract class to override the way logging is handled in the -// library. You can then call the PhoneNumberUtil::SetLogger() method. +// Abstract base class for custom logging implementations. +// Subclass this to define how logs are handled and use PhoneNumberUtil::SetLogger() to apply it. class Logger { public: - Logger() : level_(LOG_ERROR) {} + Logger() : level_(LOG_WARNING) {} // Default level set to LOG_WARNING for broader visibility virtual ~Logger() {} - // Writes the message level to the underlying output stream. + // Writes the log level prefix to the output stream (optional override). virtual void WriteLevel() {} - // Writes the provided message to the underlying output stream. + + // Writes the provided message to the output stream (must be implemented by subclasses). virtual void WriteMessage(const string& msg) = 0; - // Note that if set_verbosity_level has been used to set the level to a value - // that is not represented by an enum, the result here will be a log - // level that is higher than LOG_DEBUG. + // Returns the current log level. inline int level() const { return level_; } + // Sets the log level to control which messages are displayed. inline void set_level(int level) { level_ = level; } - // If you want to see verbose logs in addition to other logs, use this method. - // This will result in all log messages at the levels above being shown, along - // with calls to VLOG with the verbosity level set to this level or lower. - // For example, set_verbosity_level(2) will show calls of VLOG(1) and VLOG(2) - // but not VLOG(3), along with all calls to LOG(). + // Sets verbosity level for detailed logging. Shows all messages up to LOG_DEBUG plus + // verbose logs up to the specified level (e.g., set_verbosity_level(2) shows VLOG(1) and VLOG(2)). inline void set_verbosity_level(int verbose_logs_level) { set_level(LOG_DEBUG + verbose_logs_level); } + // Sets the global logger instance and returns it. static inline Logger* set_logger_impl(Logger* logger) { impl_ = logger; return logger; } + // Retrieves the current global logger instance. static inline Logger* mutable_logger_impl() { return impl_; } private: - static Logger* impl_; - int level_; + static Logger* impl_; // Global logger instance + int level_; // Current log level }; -// Logger that does not log anything. It could be useful to "mute" the -// phonenumber library. +// A logger that discards all messages, useful for muting logs in the phonenumber library. class NullLogger : public Logger { public: virtual ~NullLogger() {} - virtual void WriteMessage(const string& /* msg */) {} + virtual void WriteMessage(const string& /* msg */) {} // Does nothing }; } // namespace phonenumbers } // namespace i18n -#endif // I18N_PHONENUMBERS_LOGGER_ADAPTER_H_ +#endif // I18N_PHONENUMBERS_LOGGER_H_ \ No newline at end of file