OLD | NEW |
1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef BASE_LOGGING_H_ | 5 #ifndef BASE_LOGGING_H_ |
6 #define BASE_LOGGING_H_ | 6 #define BASE_LOGGING_H_ |
7 | 7 |
8 #include <string> | 8 #include <string> |
9 #include <cstring> | 9 #include <cstring> |
10 #include <sstream> | 10 #include <sstream> |
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
92 // and FATAL. | 92 // and FATAL. |
93 // | 93 // |
94 // Very important: logging a message at the FATAL severity level causes | 94 // Very important: logging a message at the FATAL severity level causes |
95 // the program to terminate (after the message is logged). | 95 // the program to terminate (after the message is logged). |
96 // | 96 // |
97 // Note the special severity of ERROR_REPORT only available/relevant in normal | 97 // Note the special severity of ERROR_REPORT only available/relevant in normal |
98 // mode, which displays error dialog without terminating the program. There is | 98 // mode, which displays error dialog without terminating the program. There is |
99 // no error dialog for severity ERROR or below in normal mode. | 99 // no error dialog for severity ERROR or below in normal mode. |
100 // | 100 // |
101 // There is also the special severity of DFATAL, which logs FATAL in | 101 // There is also the special severity of DFATAL, which logs FATAL in |
102 // debug mode, ERROR_REPORT in normal mode. | 102 // debug mode, ERROR in normal mode. |
103 | 103 |
104 namespace logging { | 104 namespace logging { |
105 | 105 |
106 // Where to record logging output? A flat file and/or system debug log via | 106 // Where to record logging output? A flat file and/or system debug log via |
107 // OutputDebugString. Defaults on Windows to LOG_ONLY_TO_FILE, and on | 107 // OutputDebugString. Defaults on Windows to LOG_ONLY_TO_FILE, and on |
108 // POSIX to LOG_ONLY_TO_SYSTEM_DEBUG_LOG (aka stderr). | 108 // POSIX to LOG_ONLY_TO_SYSTEM_DEBUG_LOG (aka stderr). |
109 enum LoggingDestination { LOG_NONE, | 109 enum LoggingDestination { LOG_NONE, |
110 LOG_ONLY_TO_FILE, | 110 LOG_ONLY_TO_FILE, |
111 LOG_ONLY_TO_SYSTEM_DEBUG_LOG, | 111 LOG_ONLY_TO_SYSTEM_DEBUG_LOG, |
112 LOG_TO_BOTH_FILE_AND_SYSTEM_DEBUG_LOG }; | 112 LOG_TO_BOTH_FILE_AND_SYSTEM_DEBUG_LOG }; |
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
187 void SetLogMessageHandler(LogMessageHandlerFunction handler); | 187 void SetLogMessageHandler(LogMessageHandlerFunction handler); |
188 | 188 |
189 typedef int LogSeverity; | 189 typedef int LogSeverity; |
190 const LogSeverity LOG_INFO = 0; | 190 const LogSeverity LOG_INFO = 0; |
191 const LogSeverity LOG_WARNING = 1; | 191 const LogSeverity LOG_WARNING = 1; |
192 const LogSeverity LOG_ERROR = 2; | 192 const LogSeverity LOG_ERROR = 2; |
193 const LogSeverity LOG_ERROR_REPORT = 3; | 193 const LogSeverity LOG_ERROR_REPORT = 3; |
194 const LogSeverity LOG_FATAL = 4; | 194 const LogSeverity LOG_FATAL = 4; |
195 const LogSeverity LOG_NUM_SEVERITIES = 5; | 195 const LogSeverity LOG_NUM_SEVERITIES = 5; |
196 | 196 |
197 // LOG_DFATAL_LEVEL is LOG_FATAL in debug mode, ERROR_REPORT in normal mode | 197 // LOG_DFATAL_LEVEL is LOG_FATAL in debug mode, ERROR in normal mode |
198 #ifdef NDEBUG | 198 #ifdef NDEBUG |
199 const LogSeverity LOG_DFATAL_LEVEL = LOG_ERROR_REPORT; | 199 const LogSeverity LOG_DFATAL_LEVEL = LOG_ERROR; |
200 #else | 200 #else |
201 const LogSeverity LOG_DFATAL_LEVEL = LOG_FATAL; | 201 const LogSeverity LOG_DFATAL_LEVEL = LOG_FATAL; |
202 #endif | 202 #endif |
203 | 203 |
204 // A few definitions of macros that don't generate much code. These are used | 204 // A few definitions of macros that don't generate much code. These are used |
205 // by LOG() and LOG_IF, etc. Since these are used all over our code, it's | 205 // by LOG() and LOG_IF, etc. Since these are used all over our code, it's |
206 // better to have compact code for these operations. | 206 // better to have compact code for these operations. |
207 #define COMPACT_GOOGLE_LOG_EX_INFO(ClassName, ...) \ | 207 #define COMPACT_GOOGLE_LOG_EX_INFO(ClassName, ...) \ |
208 logging::ClassName(__FILE__, __LINE__, logging::LOG_INFO , ##__VA_ARGS__) | 208 logging::ClassName(__FILE__, __LINE__, logging::LOG_INFO , ##__VA_ARGS__) |
209 #define COMPACT_GOOGLE_LOG_EX_WARNING(ClassName, ...) \ | 209 #define COMPACT_GOOGLE_LOG_EX_WARNING(ClassName, ...) \ |
(...skipping 650 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
860 #elif NOTIMPLEMENTED_POLICY == 4 | 860 #elif NOTIMPLEMENTED_POLICY == 4 |
861 #define NOTIMPLEMENTED() LOG(ERROR) << NOTIMPLEMENTED_MSG | 861 #define NOTIMPLEMENTED() LOG(ERROR) << NOTIMPLEMENTED_MSG |
862 #elif NOTIMPLEMENTED_POLICY == 5 | 862 #elif NOTIMPLEMENTED_POLICY == 5 |
863 #define NOTIMPLEMENTED() do {\ | 863 #define NOTIMPLEMENTED() do {\ |
864 static int count = 0;\ | 864 static int count = 0;\ |
865 LOG_IF(ERROR, 0 == count++) << NOTIMPLEMENTED_MSG;\ | 865 LOG_IF(ERROR, 0 == count++) << NOTIMPLEMENTED_MSG;\ |
866 } while(0) | 866 } while(0) |
867 #endif | 867 #endif |
868 | 868 |
869 #endif // BASE_LOGGING_H_ | 869 #endif // BASE_LOGGING_H_ |
OLD | NEW |