15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2006-2009 The Chromium Authors. All rights reserved.
25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file.
45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef BASE_LOG_SEVERITY_H_
65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define BASE_LOG_SEVERITY_H_
75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/port.h"
95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/commandlineflags.h"
105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Variables of type LogSeverity are widely taken to lie in the range
125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// [0, NUM_SEVERITIES-1].  Be careful to preserve this assumption if
135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// you ever need to change their values or add a new severity.
145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef int LogSeverity;
155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const int INFO = 0, WARNING = 1, ERROR = 2, FATAL = 3, NUM_SEVERITIES = 4;
175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// DFATAL is FATAL in debug mode, ERROR in normal mode
195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef NDEBUG
205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define DFATAL_LEVEL ERROR
215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#else
225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define DFATAL_LEVEL FATAL
235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern const char* const LogSeverityNames[NUM_SEVERITIES];
265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Some flags needed for VLOG and RAW_VLOG
285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)DECLARE_int32(v);
295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)DECLARE_bool(silent_init);
305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// NDEBUG usage helpers related to (RAW_)DCHECK:
325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//
335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// DEBUG_MODE is for small !NDEBUG uses like
345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//   if (DEBUG_MODE) foo.CheckThatFoo();
355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// instead of substantially more verbose
365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//   #ifndef NDEBUG
375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//     foo.CheckThatFoo();
385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//   #endif
395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//
405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef NDEBUG
415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)enum { DEBUG_MODE = 0 };
425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#else
435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)enum { DEBUG_MODE = 1 };
445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif  // BASE_LOG_SEVERITY_H_
47