Add an explicit VERBOSE log level
Now it's possible to set the level to VERBOSE and DEBUG independently in
debug builds.
Setting the level to VERBOSE in a release build is equivalent to
setting it to DEBUG.
Test: - build, flash
- adb shell setprop persist.sys.nw_dns_resolver_log VERBOSE
- adb logcat | grep libnetd_resolv
Change-Id: Ieafa90fa31e74490203d9d0d8c4f548a68ed3504
diff --git a/res_debug.cpp b/res_debug.cpp
index 16ede43..2ea5d87 100644
--- a/res_debug.cpp
+++ b/res_debug.cpp
@@ -96,7 +96,6 @@
*/
#define LOG_TAG "res_debug"
-#define DBG 0
#include <sys/param.h>
#include <sys/socket.h>
@@ -118,6 +117,14 @@
#include "resolv_private.h"
+// Default to disabling verbose logging unless overridden by Android.bp
+// for debuggable builds.
+//
+// NOTE: Verbose resolver logs could contain PII -- do NOT enable in production builds
+#ifndef RESOLV_ALLOW_VERBOSE_LOGGING
+#define RESOLV_ALLOW_VERBOSE_LOGGING 0
+#endif
+
struct res_sym {
int number; /* Identifying number, like T_MX */
const char* name; /* Its symbolic name, like "MX" */
@@ -502,12 +509,12 @@
android::base::LogSeverity logSeverityStrToEnum(const std::string& logSeverityStr) {
android::base::LogSeverity logSeverityEnum;
- if (logSeverityStr == "DEBUG") {
+ if (logSeverityStr == "VERBOSE") {
// *** enable verbose logging only when DBG is set. It prints sensitive data ***
- if (DBG)
- logSeverityEnum = android::base::VERBOSE;
- else
- logSeverityEnum = android::base::DEBUG;
+ logSeverityEnum =
+ RESOLV_ALLOW_VERBOSE_LOGGING ? android::base::VERBOSE : android::base::DEBUG;
+ } else if (logSeverityStr == "DEBUG") {
+ logSeverityEnum = android::base::DEBUG;
} else if (logSeverityStr == "INFO") {
logSeverityEnum = android::base::INFO;
} else if (logSeverityStr == "WARNING") {