Home | History | Annotate | Download | only in util
      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