/*
- * Copyright 2004-present Facebook, Inc.
+ * Copyright 2017-present Facebook, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* initialized. On all subsequent calls, disabled log statements can be
* skipped with just a single check of the LogLevel.
*/
-#define XLOG_IMPL(level, type, ...) \
- (!XLOG_IS_ON_IMPL(level)) \
- ? static_cast<void>(0) \
- : ::folly::LogStreamVoidify<::folly::isLogLevelFatal(level)>{} & \
- ::folly::LogStreamProcessor( \
- [] { \
- static ::folly::XlogCategoryInfo<XLOG_IS_IN_HEADER_FILE> \
- _xlogCategory_; \
- return _xlogCategory_.getInfo( \
- &xlog_detail::xlogFileScopeInfo); \
- }(), \
- (level), \
- xlog_detail::getXlogCategoryName(__FILE__, 0), \
- xlog_detail::isXlogCategoryOverridden(0), \
- __FILE__, \
- __LINE__, \
- (type), \
- ##__VA_ARGS__) \
+/* clang-format off */
+#define XLOG_IMPL(level, type, ...) \
+ (!XLOG_IS_ON_IMPL(level)) \
+ ? ::folly::logDisabledHelper( \
+ std::integral_constant<bool, ::folly::isLogLevelFatal(level)>{}) \
+ : ::folly::LogStreamVoidify< ::folly::isLogLevelFatal(level)>{} & \
+ ::folly::LogStreamProcessor( \
+ [] { \
+ static ::folly::XlogCategoryInfo<XLOG_IS_IN_HEADER_FILE> \
+ _xlogCategory_; \
+ return _xlogCategory_.getInfo( \
+ &xlog_detail::xlogFileScopeInfo); \
+ }(), \
+ (level), \
+ xlog_detail::getXlogCategoryName(__FILE__, 0), \
+ xlog_detail::isXlogCategoryOverridden(0), \
+ __FILE__, \
+ __LINE__, \
+ (type), \
+ ##__VA_ARGS__) \
.stream()
+/* clang-format on */
/**
* Check if and XLOG() statement with the given log level would be enabled.
+ *
+ * The level parameter must be an unqualified LogLevel enum value.
*/
#define XLOG_IS_ON(level) XLOG_IS_ON_IMPL(::folly::LogLevel::level)
* XLOG_SET_CATEGORY_NAME() has not been used.
*/
std::string getXlogCategoryNameForFile(folly::StringPiece filename);
-}
+} // namespace folly
/*
* We intentionally use an unnamed namespace inside a header file here.
* statement.
*/
::folly::XlogFileScopeInfo xlogFileScopeInfo;
-}
-}
+} // namespace xlog_detail
+} // namespace