summaryrefslogtreecommitdiffstats
path: root/cpp/src/phonenumbers/logger.h
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src/phonenumbers/logger.h')
-rw-r--r--cpp/src/phonenumbers/logger.h20
1 files changed, 16 insertions, 4 deletions
diff --git a/cpp/src/phonenumbers/logger.h b/cpp/src/phonenumbers/logger.h
index 4a6d23b..9d67f91 100644
--- a/cpp/src/phonenumbers/logger.h
+++ b/cpp/src/phonenumbers/logger.h
@@ -25,7 +25,7 @@ namespace phonenumbers {
using std::string;
-enum LogLevel {
+enum {
LOG_FATAL = 1,
LOG_ERROR,
LOG_WARNING,
@@ -54,14 +54,26 @@ class Logger {
// Writes the provided message to the underlying output stream.
virtual void WriteMessage(const string& msg) = 0;
- inline LogLevel level() const {
+ // 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.
+ inline int level() const {
return level_;
}
- inline void set_level(LogLevel level) {
+ 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().
+ inline void set_verbosity_level(int verbose_logs_level) {
+ set_level(LOG_DEBUG + verbose_logs_level);
+ }
+
static inline Logger* set_logger_impl(Logger* logger) {
impl_ = logger;
return logger;
@@ -73,7 +85,7 @@ class Logger {
private:
static Logger* impl_;
- LogLevel level_;
+ int level_;
};
// Logger that does not log anything. It could be useful to "mute" the