| Index: base/logging.h
|
| diff --git a/base/logging.h b/base/logging.h
|
| index fd148aa2694700e910e79810635e60fb466e2b56..86af81797901e7e749fc454ea1f3adbf91a5a9f1 100644
|
| --- a/base/logging.h
|
| +++ b/base/logging.h
|
| @@ -282,11 +282,31 @@ BASE_EXPORT void SetLogAssertHandler(LogAssertHandlerFunction handler);
|
| // Sets the Log Message Handler that gets passed every log message before
|
| // it's sent to other log destinations (if any).
|
| // Returns true to signal that it handled the message and the message
|
| -// should not be sent to other log destinations.
|
| +// should not be sent to other log destinations, including other handlers
|
| +// below the current one in the stack.
|
| typedef bool (*LogMessageHandlerFunction)(int severity,
|
| const char* file, int line, size_t message_start, const std::string& str);
|
| -BASE_EXPORT void SetLogMessageHandler(LogMessageHandlerFunction handler);
|
| -BASE_EXPORT LogMessageHandlerFunction GetLogMessageHandler();
|
| +BASE_EXPORT void PushLogMessageHandler(LogMessageHandlerFunction handler);
|
| +// When popping, GetTopLogMessageHandler() is supposed to be |expected|.
|
| +BASE_EXPORT void PopLogMessageHandler(LogMessageHandlerFunction expected);
|
| +BASE_EXPORT LogMessageHandlerFunction GetTopLogMessageHandler();
|
| +
|
| +// Sets the Log Message Listener that gets passed every log message before
|
| +// it's sent to LogMessageHandlerFunctions. If hijacking message is not
|
| +// needed, use this one instead of LogMessageHandlerFunction.
|
| +typedef void (*LogMessageListenerFunction)(int severity,
|
| + const char* file, int line, size_t message_start, const std::string& str);
|
| +
|
| +class BASE_EXPORT ScopedLogMessageListener {
|
| + public:
|
| + explicit ScopedLogMessageListener(LogMessageListenerFunction listener);
|
| + ~ScopedLogMessageListener();
|
| + private:
|
| + LogMessageListenerFunction listener_;
|
| +};
|
| +
|
| +BASE_EXPORT void AddLogMessageListener(LogMessageListenerFunction listener);
|
| +BASE_EXPORT void RemoveLogMessageListener(LogMessageListenerFunction listener);
|
|
|
| typedef int LogSeverity;
|
| const LogSeverity LOG_VERBOSE = -1; // This is level 1 verbosity
|
|
|