Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(99)

Side by Side Diff: base/logging.h

Issue 6100007: Revert 70782 - Made logging not look up --enable-dcheck from command line... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 9 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | base/logging.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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 #pragma once 7 #pragma once
8 8
9 #include <string> 9 #include <string>
10 #include <cstring> 10 #include <cstring>
(...skipping 147 matching lines...) Expand 10 before | Expand all | Expand 10 after
158 // make each log outut atomic. Other writers will block. 158 // make each log outut atomic. Other writers will block.
159 // 159 //
160 // All processes writing to the log file must have their locking set for it to 160 // All processes writing to the log file must have their locking set for it to
161 // work properly. Defaults to DONT_LOCK_LOG_FILE. 161 // work properly. Defaults to DONT_LOCK_LOG_FILE.
162 enum LogLockingState { LOCK_LOG_FILE, DONT_LOCK_LOG_FILE }; 162 enum LogLockingState { LOCK_LOG_FILE, DONT_LOCK_LOG_FILE };
163 163
164 // On startup, should we delete or append to an existing log file (if any)? 164 // On startup, should we delete or append to an existing log file (if any)?
165 // Defaults to APPEND_TO_OLD_LOG_FILE. 165 // Defaults to APPEND_TO_OLD_LOG_FILE.
166 enum OldFileDeletionState { DELETE_OLD_LOG_FILE, APPEND_TO_OLD_LOG_FILE }; 166 enum OldFileDeletionState { DELETE_OLD_LOG_FILE, APPEND_TO_OLD_LOG_FILE };
167 167
168 enum DcheckState {
169 DISABLE_DCHECK_FOR_NON_OFFICIAL_RELEASE_BUILDS,
170 ENABLE_DCHECK_FOR_NON_OFFICIAL_RELEASE_BUILDS
171 };
172
173 // TODO(avi): do we want to do a unification of character types here? 168 // TODO(avi): do we want to do a unification of character types here?
174 #if defined(OS_WIN) 169 #if defined(OS_WIN)
175 typedef wchar_t PathChar; 170 typedef wchar_t PathChar;
176 #else 171 #else
177 typedef char PathChar; 172 typedef char PathChar;
178 #endif 173 #endif
179 174
180 // Define different names for the BaseInitLoggingImpl() function depending on 175 // Define different names for the BaseInitLoggingImpl() function depending on
181 // whether NDEBUG is defined or not so that we'll fail to link if someone tries 176 // whether NDEBUG is defined or not so that we'll fail to link if someone tries
182 // to compile logging.cc with NDEBUG but includes logging.h without defining it, 177 // to compile logging.cc with NDEBUG but includes logging.h without defining it,
183 // or vice versa. 178 // or vice versa.
184 #if NDEBUG 179 #if NDEBUG
185 #define BaseInitLoggingImpl BaseInitLoggingImpl_built_with_NDEBUG 180 #define BaseInitLoggingImpl BaseInitLoggingImpl_built_with_NDEBUG
186 #else 181 #else
187 #define BaseInitLoggingImpl BaseInitLoggingImpl_built_without_NDEBUG 182 #define BaseInitLoggingImpl BaseInitLoggingImpl_built_without_NDEBUG
188 #endif 183 #endif
189 184
190 // Implementation of the InitLogging() method declared below. We use a 185 // Implementation of the InitLogging() method declared below. We use a
191 // more-specific name so we can #define it above without affecting other code 186 // more-specific name so we can #define it above without affecting other code
192 // that has named stuff "InitLogging". 187 // that has named stuff "InitLogging".
193 bool BaseInitLoggingImpl(const PathChar* log_file, 188 bool BaseInitLoggingImpl(const PathChar* log_file,
194 LoggingDestination logging_dest, 189 LoggingDestination logging_dest,
195 LogLockingState lock_log, 190 LogLockingState lock_log,
196 OldFileDeletionState delete_old, 191 OldFileDeletionState delete_old);
197 DcheckState dcheck_state);
198 192
199 // Sets the log file name and other global logging state. Calling this function 193 // Sets the log file name and other global logging state. Calling this function
200 // is recommended, and is normally done at the beginning of application init. 194 // is recommended, and is normally done at the beginning of application init.
201 // If you don't call it, all the flags will be initialized to their default 195 // If you don't call it, all the flags will be initialized to their default
202 // values, and there is a race condition that may leak a critical section 196 // values, and there is a race condition that may leak a critical section
203 // object if two threads try to do the first log at the same time. 197 // object if two threads try to do the first log at the same time.
204 // See the definition of the enums above for descriptions and default values. 198 // See the definition of the enums above for descriptions and default values.
205 // 199 //
206 // The default log file is initialized to "debug.log" in the application 200 // The default log file is initialized to "debug.log" in the application
207 // directory. You probably don't want this, especially since the program 201 // directory. You probably don't want this, especially since the program
208 // directory may not be writable on an enduser's system. 202 // directory may not be writable on an enduser's system.
209 inline bool InitLogging(const PathChar* log_file, 203 inline bool InitLogging(const PathChar* log_file,
210 LoggingDestination logging_dest, 204 LoggingDestination logging_dest,
211 LogLockingState lock_log, 205 LogLockingState lock_log,
212 OldFileDeletionState delete_old, 206 OldFileDeletionState delete_old) {
213 DcheckState dcheck_state) { 207 return BaseInitLoggingImpl(log_file, logging_dest, lock_log, delete_old);
214 return BaseInitLoggingImpl(log_file, logging_dest, lock_log,
215 delete_old, dcheck_state);
216 } 208 }
217 209
218 // Sets the log level. Anything at or above this level will be written to the 210 // Sets the log level. Anything at or above this level will be written to the
219 // log file/displayed to the user (if applicable). Anything below this level 211 // log file/displayed to the user (if applicable). Anything below this level
220 // will be silently ignored. The log level defaults to 0 (everything is logged 212 // will be silently ignored. The log level defaults to 0 (everything is logged
221 // up to level INFO) if this function is not called. 213 // up to level INFO) if this function is not called.
222 // Note that log messages for VLOG(x) are logged at level -x, so setting 214 // Note that log messages for VLOG(x) are logged at level -x, so setting
223 // the min log level to negative values enables verbose logging. 215 // the min log level to negative values enables verbose logging.
224 void SetMinLogLevel(int level); 216 void SetMinLogLevel(int level);
225 217
(...skipping 375 matching lines...) Expand 10 before | Expand all | Expand 10 after
601 // Definitions for DCHECK et al. 593 // Definitions for DCHECK et al.
602 594
603 #if ENABLE_DCHECK 595 #if ENABLE_DCHECK
604 596
605 #if defined(NDEBUG) 597 #if defined(NDEBUG)
606 598
607 #define COMPACT_GOOGLE_LOG_EX_DCHECK(ClassName, ...) \ 599 #define COMPACT_GOOGLE_LOG_EX_DCHECK(ClassName, ...) \
608 COMPACT_GOOGLE_LOG_EX_ERROR_REPORT(ClassName , ##__VA_ARGS__) 600 COMPACT_GOOGLE_LOG_EX_ERROR_REPORT(ClassName , ##__VA_ARGS__)
609 #define COMPACT_GOOGLE_LOG_DCHECK COMPACT_GOOGLE_LOG_ERROR_REPORT 601 #define COMPACT_GOOGLE_LOG_DCHECK COMPACT_GOOGLE_LOG_ERROR_REPORT
610 const LogSeverity LOG_DCHECK = LOG_ERROR_REPORT; 602 const LogSeverity LOG_DCHECK = LOG_ERROR_REPORT;
611 extern DcheckState g_dcheck_state; 603 // This is set to true in InitLogging when we want to enable the
612 #define DCHECK_IS_ON() \ 604 // DCHECKs in release.
613 ((::logging::g_dcheck_state == \ 605 extern bool g_enable_dcheck;
614 ENABLE_DCHECK_FOR_NON_OFFICIAL_RELEASE_BUILDS) && \ 606 #define DCHECK_IS_ON() (::logging::g_enable_dcheck && LOG_IS_ON(DCHECK))
615 LOG_IS_ON(DCHECK))
616 607
617 #else // defined(NDEBUG) 608 #else // defined(NDEBUG)
618 609
619 // On a regular debug build, we want to have DCHECKs enabled. 610 // On a regular debug build, we want to have DCHECKs enabled.
620 #define COMPACT_GOOGLE_LOG_EX_DCHECK(ClassName, ...) \ 611 #define COMPACT_GOOGLE_LOG_EX_DCHECK(ClassName, ...) \
621 COMPACT_GOOGLE_LOG_EX_FATAL(ClassName , ##__VA_ARGS__) 612 COMPACT_GOOGLE_LOG_EX_FATAL(ClassName , ##__VA_ARGS__)
622 #define COMPACT_GOOGLE_LOG_DCHECK COMPACT_GOOGLE_LOG_FATAL 613 #define COMPACT_GOOGLE_LOG_DCHECK COMPACT_GOOGLE_LOG_FATAL
623 const LogSeverity LOG_DCHECK = LOG_FATAL; 614 const LogSeverity LOG_DCHECK = LOG_FATAL;
624 #define DCHECK_IS_ON() true 615 #define DCHECK_IS_ON() true
625 616
(...skipping 287 matching lines...) Expand 10 before | Expand all | Expand 10 after
913 #elif NOTIMPLEMENTED_POLICY == 4 904 #elif NOTIMPLEMENTED_POLICY == 4
914 #define NOTIMPLEMENTED() LOG(ERROR) << NOTIMPLEMENTED_MSG 905 #define NOTIMPLEMENTED() LOG(ERROR) << NOTIMPLEMENTED_MSG
915 #elif NOTIMPLEMENTED_POLICY == 5 906 #elif NOTIMPLEMENTED_POLICY == 5
916 #define NOTIMPLEMENTED() do {\ 907 #define NOTIMPLEMENTED() do {\
917 static int count = 0;\ 908 static int count = 0;\
918 LOG_IF(ERROR, 0 == count++) << NOTIMPLEMENTED_MSG;\ 909 LOG_IF(ERROR, 0 == count++) << NOTIMPLEMENTED_MSG;\
919 } while(0) 910 } while(0)
920 #endif 911 #endif
921 912
922 #endif // BASE_LOGGING_H_ 913 #endif // BASE_LOGGING_H_
OLDNEW
« no previous file with comments | « no previous file | base/logging.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698