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