• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 #ifndef SYNC_UTIL_LOGGING_H_
6 #define SYNC_UTIL_LOGGING_H_
7 
8 #include "base/logging.h"
9 
10 // TODO(akalin): This probably belongs in base/ somewhere.
11 
12 namespace tracked_objects {
13 class Location;
14 }  // namespace tracked_objects
15 
16 namespace syncer {
17 
18 bool VlogIsOnForLocation(const tracked_objects::Location& from_here,
19                          int verbose_level);
20 
21 }  // namespace syncer
22 
23 #define VLOG_LOC_STREAM(from_here, verbose_level)                       \
24   logging::LogMessage(from_here.file_name(), from_here.line_number(),   \
25                       -verbose_level).stream()
26 
27 #define DVLOG_LOC(from_here, verbose_level)                             \
28   LAZY_STREAM(                                                          \
29       VLOG_LOC_STREAM(from_here, verbose_level),                        \
30       ::logging::DEBUG_MODE &&                                          \
31       (VLOG_IS_ON(verbose_level) ||                                     \
32        ::syncer::VlogIsOnForLocation(from_here, verbose_level)))        \
33 
34 #endif  // SYNC_UTIL_LOGGING_H_
35