Reland "Reland "Implement RTC_DLOG macro and use in a few places to test.""
This is a reland of d6fc82f1739f33097d3d96f43ae14bcd1a70df93
Original change's description:
> Reland "Implement RTC_DLOG macro and use in a few places to test."
>
> This is a reland of b18e868aa4375351cacd79efeb519b123878c39a
> Original change's description:
> > Implement RTC_DLOG macro and use in a few places to test.
> >
> > Bug: webrtc:8529
> > Change-Id: I31a5a4ec873088b1831dfa31a496467efff89cc1
> > Reviewed-on: https://webrtc-review.googlesource.com/23041
> > Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
> > Reviewed-by: Tommi <tommi@webrtc.org>
> > Commit-Queue: Fredrik Solenberg <solenberg@webrtc.org>
> > Cr-Commit-Position: refs/heads/master@{#20690}
>
> Bug: webrtc:8529
> Change-Id: I68073870945f3085966e7a61fe6efa083eedd100
> Reviewed-on: https://webrtc-review.googlesource.com/23361
> Commit-Queue: Fredrik Solenberg <solenberg@webrtc.org>
> Reviewed-by: Fredrik Solenberg <solenberg@webrtc.org>
> Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#20725}
TBR=kwiberg@webrtc.org
Bug: webrtc:8529
Change-Id: I7a12591253a549cfbd91218e5563c3805e8c647b
Reviewed-on: https://webrtc-review.googlesource.com/24080
Commit-Queue: Fredrik Solenberg <solenberg@webrtc.org>
Reviewed-by: Fredrik Solenberg <solenberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20735}
diff --git a/rtc_base/logging.h b/rtc_base/logging.h
index 93c2882..83bc33a 100644
--- a/rtc_base/logging.h
+++ b/rtc_base/logging.h
@@ -61,6 +61,12 @@
#include "rtc_base/constructormagic.h"
#include "rtc_base/thread_annotations.h"
+#if !defined(NDEBUG) || defined(DLOG_ALWAYS_ON)
+#define RTC_DLOG_IS_ON 1
+#else
+#define RTC_DLOG_IS_ON 0
+#endif
+
namespace rtc {
///////////////////////////////////////////////////////////////////////////////
@@ -360,7 +366,22 @@
#define RTC_PLOG(sev, err) \
RTC_LOG_ERR_EX(sev, err)
-// TODO(?): Add an "assert" wrapper that logs in the same manner.
+// The RTC_DLOG macros are equivalent to their RTC_LOG counterparts except that
+// they only generate code in debug builds.
+#if RTC_DLOG_IS_ON
+#define RTC_DLOG(sev) RTC_LOG(sev)
+#define RTC_DLOG_V(sev) RTC_LOG_V(sev)
+#define RTC_DLOG_F(sev) RTC_LOG_F(sev)
+#else
+#define RTC_DLOG_EAT_STREAM_PARAMS(sev) \
+ (true ? true : ((void)(rtc::sev), true)) \
+ ? static_cast<void>(0) \
+ : rtc::LogMessageVoidify() & \
+ rtc::LogMessage(__FILE__, __LINE__, rtc::sev).stream()
+#define RTC_DLOG(sev) RTC_DLOG_EAT_STREAM_PARAMS(sev)
+#define RTC_DLOG_V(sev) RTC_DLOG_EAT_STREAM_PARAMS(sev)
+#define RTC_DLOG_F(sev) RTC_DLOG_EAT_STREAM_PARAMS(sev)
+#endif
} // namespace rtc