summaryrefslogtreecommitdiffstats
path: root/sync/util/logging.h
blob: f23d9c16f764ff71f29c1af703d7e2d5043be87d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
// Copyright (c) 2012 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef SYNC_UTIL_LOGGING_H_
#define SYNC_UTIL_LOGGING_H_

#include "base/logging.h"

// TODO(akalin): This probably belongs in base/ somewhere.

namespace tracked_objects {
class Location;
}  // namespace tracked_objects

namespace syncer {

bool VlogIsOnForLocation(const tracked_objects::Location& from_here,
                         int verbose_level);

}  // namespace syncer

#define VLOG_LOC_STREAM(from_here, verbose_level)                       \
  logging::LogMessage(from_here.file_name(), from_here.line_number(),   \
                      -verbose_level).stream()

#define DVLOG_LOC(from_here, verbose_level)                             \
  LAZY_STREAM(                                                          \
      VLOG_LOC_STREAM(from_here, verbose_level),                        \
      ::logging::DEBUG_MODE &&                                          \
      (VLOG_IS_ON(verbose_level) ||                                     \
       ::syncer::VlogIsOnForLocation(from_here, verbose_level)))        \

#endif  // SYNC_UTIL_LOGGING_H_