blob: 804d6a7b3ca0d6e7b6fd3561deae682a1c79b4cb [file] [log] [blame]
// Copyright (c) 2017 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 NET_HTTP2_PLATFORM_IMPL_HTTP2_LOGGING_IMPL_H_
#define NET_HTTP2_PLATFORM_IMPL_HTTP2_LOGGING_IMPL_H_
#include "base/check_op.h"
#include "base/logging.h"
#include "base/notreached.h"
#include "build/build_config.h"
#include "net/base/net_export.h"
#define HTTP2_LOG_IMPL(severity) HTTP2_CHROMIUM_LOG_##severity
#define HTTP2_VLOG_IMPL(verbose_level) VLOG(verbose_level)
#define HTTP2_DLOG_IMPL(severity) HTTP2_CHROMIUM_DLOG_##severity
#define HTTP2_DLOG_IF_IMPL(severity, condition) \
HTTP2_CHROMIUM_DLOG_IF_##severity(condition)
#define HTTP2_DVLOG_IMPL(verbose_level) DVLOG(verbose_level)
#define HTTP2_DVLOG_IF_IMPL(verbose_level, condition) \
DVLOG_IF(verbose_level, condition)
#define HTTP2_LOG_FIRST_N_IMPL(severity, n) HTTP2_LOG_IMPL(severity)
#define HTTP2_CHROMIUM_LOG_INFO VLOG(1)
#define HTTP2_CHROMIUM_LOG_WARNING DLOG(WARNING)
#define HTTP2_CHROMIUM_LOG_ERROR DLOG(ERROR)
#define HTTP2_CHROMIUM_LOG_FATAL LOG(FATAL)
#define HTTP2_CHROMIUM_LOG_DFATAL LOG(DFATAL)
#define HTTP2_CHROMIUM_DLOG_INFO DVLOG(1)
#define HTTP2_CHROMIUM_DLOG_WARNING DLOG(WARNING)
#define HTTP2_CHROMIUM_DLOG_ERROR DLOG(ERROR)
#define HTTP2_CHROMIUM_DLOG_FATAL DLOG(FATAL)
#define HTTP2_CHROMIUM_DLOG_DFATAL DLOG(DFATAL)
#define HTTP2_CHROMIUM_LOG_IF_INFO(condition) VLOG_IF(1, condition)
#define HTTP2_CHROMIUM_LOG_IF_WARNING(condition) DLOG_IF(WARNING, condition)
#define HTTP2_CHROMIUM_LOG_IF_ERROR(condition) DLOG_IF(ERROR, condition)
#define HTTP2_CHROMIUM_LOG_IF_FATAL(condition) LOG_IF(FATAL, condition)
#define HTTP2_CHROMIUM_LOG_IF_DFATAL(condition) LOG_IF(DFATAL, condition)
#define HTTP2_CHROMIUM_DLOG_IF_INFO(condition) DVLOG_IF(1, condition)
#define HTTP2_CHROMIUM_DLOG_IF_WARNING(condition) DLOG_IF(WARNING, condition)
#define HTTP2_CHROMIUM_DLOG_IF_ERROR(condition) DLOG_IF(ERROR, condition)
#define HTTP2_CHROMIUM_DLOG_IF_FATAL(condition) DLOG_IF(FATAL, condition)
#define HTTP2_CHROMIUM_DLOG_IF_DFATAL(condition) DLOG_IF(DFATAL, condition)
#define HTTP2_LOG_INFO_IS_ON_IMPL() 0
#ifdef NDEBUG
#define HTTP2_LOG_WARNING_IS_ON_IMPL() 0
#define HTTP2_LOG_ERROR_IS_ON_IMPL() 0
#else
#define HTTP2_LOG_WARNING_IS_ON_IMPL() 1
#define HTTP2_LOG_ERROR_IS_ON_IMPL() 1
#endif
#define HTTP2_DLOG_INFO_IS_ON_IMPL() 0
#if defined(OS_WIN)
// wingdi.h defines ERROR to be 0. When we call HTTP2_DLOG(ERROR), it gets
// substituted with 0, and it expands to HTTP2_CHROMIUM_DLOG_0. To allow us to
// keep using this syntax, we define this macro to do the same thing as
// HTTP2_CHROMIUM_DLOG_ERROR.
#define HTTP2_CHROMIUM_LOG_0 HTTP2_CHROMIUM_LOG_ERROR
#define HTTP2_CHROMIUM_DLOG_0 HTTP2_CHROMIUM_DLOG_ERROR
#define HTTP2_CHROMIUM_LOG_IF_0 HTTP2_CHROMIUM_LOG_IF_ERROR
#define HTTP2_CHROMIUM_DLOG_IF_0 HTTP2_CHROMIUM_DLOG_IF_ERROR
#endif
#define HTTP2_PREDICT_FALSE_IMPL(x) x
#define HTTP2_NOTREACHED_IMPL() NOTREACHED()
#define HTTP2_PLOG_IMPL(severity) DVLOG(1)
#endif // NET_HTTP2_PLATFORM_IMPL_HTTP2_LOGGING_IMPL_H_