Enable gen_log for DnsResolverService and fix some style problems

1. enable gen_log in DnsResolverService
2. fix style problems in DnsResolverService
3. fix potential log_func register bug which is service is registered earlier
   than logFunc in NetdNativeService

Test: built, flashed, booted
      system/netd/tests/runtests.sh pass

Change-Id: Ib046b52065f894cd5bac0c9c905b85352556a48d
diff --git a/server/NetdNativeService.cpp b/server/NetdNativeService.cpp
index fe575df..65d4727 100644
--- a/server/NetdNativeService.cpp
+++ b/server/NetdNativeService.cpp
@@ -26,17 +26,18 @@
 #include <android-base/file.h>
 #include <android-base/stringprintf.h>
 #include <android-base/strings.h>
+#include <binder/IPCThreadState.h>
+#include <binder/IServiceManager.h>
+#include <binder/Status.h>
 #include <cutils/properties.h>
+#include <json/value.h>
+#include <json/writer.h>
 #include <log/log.h>
+#include <netdutils/DumpWriter.h>
 #include <utils/Errors.h>
 #include <utils/String16.h>
 
-#include <binder/IPCThreadState.h>
-#include <binder/IServiceManager.h>
-
-#include <json/value.h>
-#include <json/writer.h>
-
+#include "BinderUtil.h"
 #include "Controllers.h"
 #include "InterfaceController.h"
 #include "NetdConstants.h"  // SHA256_SIZE
@@ -49,7 +50,6 @@
 #include "SockDiag.h"
 #include "UidRanges.h"
 #include "android/net/BnNetd.h"
-#include "netdutils/DumpWriter.h"
 #include "netid_client.h"  // NETID_UNSET
 
 using android::base::StringPrintf;
@@ -148,42 +148,14 @@
     return false;
 }
 
-std::string exceptionToString(int32_t exception) {
-    std::string ret = "UnknownException";
-    switch (exception) {
-        case binder::Status::EX_SECURITY:
-            ret = "SecurityException";
-            break;
-        case binder::Status::EX_BAD_PARCELABLE:
-            ret = "BadParcelableException";
-            break;
-        case binder::Status::EX_ILLEGAL_ARGUMENT:
-            ret = "IllegalArgumentException";
-            break;
-        case binder::Status::EX_NETWORK_MAIN_THREAD:
-            ret = "NetworkMainThreadException";
-            break;
-        case binder::Status::EX_UNSUPPORTED_OPERATION:
-            ret = "UnsupportedOperationException";
-            break;
-        case binder::Status::EX_SERVICE_SPECIFIC:
-            ret = "ServiceSpecificException";
-            break;
-        case binder::Status::EX_PARCELABLE:
-            ret = "ParcelableException";
-            break;
-        case binder::Status::EX_HAS_REPLY_HEADER:
-            ret = "HasReplyHeaderException";
-            break;
-        case binder::Status::EX_TRANSACTION_FAILED:
-            ret = "TransactionFailedException";
-            break;
-    }
-    return ret;
-}
-
 }  // namespace
 
+NetdNativeService::NetdNativeService() {
+    // register log callback to BnNetd::logFunc
+    BnNetd::logFunc = std::bind(binderCallLogFn, std::placeholders::_1,
+                                [](const std::string& msg) { gLog.info("%s", msg.c_str()); });
+}
+
 status_t NetdNativeService::start() {
     IPCThreadState::self()->disableBackgroundScheduling(true);
     const status_t ret = BinderService<NetdNativeService>::publish();
@@ -194,54 +166,6 @@
     ps->startThreadPool();
     ps->giveThreadPoolName();
 
-    // register log callback to BnNetd::logFunc
-    BnNetd::logFunc = [](const Json::Value& logTransaction) {
-        using namespace std::string_literals;
-
-        bool hasReturnArgs;
-        std::string output;
-        const Json::Value& returnArgs = logTransaction["_aidl_return"];
-        const Json::Value& inputArgsArray = logTransaction["input_args"];
-        const int exceptionCode = logTransaction["binder_status"]["exception_code"].asInt();
-
-        hasReturnArgs = !returnArgs.empty();
-        output.append(logTransaction["method_name"].asString() + "("s);
-
-        // input args
-        Json::FastWriter fastWriter;
-        fastWriter.omitEndingLineFeed();
-        for (Json::Value::ArrayIndex i = 0; i < inputArgsArray.size(); ++i) {
-            std::string value = fastWriter.write(inputArgsArray[i]["value"]);
-            output.append(value);
-            if (i != inputArgsArray.size() - 1) {
-                output.append(", "s);
-            }
-        }
-        output.append(")"s);
-        if (hasReturnArgs || exceptionCode != binder::Status::EX_NONE) output.append(" -> "s);
-        // return status
-        if (!binder::Status::fromExceptionCode(exceptionCode).isOk()) {
-            // an exception occurred
-            if (exceptionCode == binder::Status::EX_SERVICE_SPECIFIC) {
-                output.append(StringPrintf(
-                        "%s(%d, \"%s\")", exceptionToString(exceptionCode).c_str(),
-                        logTransaction["binder_status"]["service_specific_error_code"].asInt(),
-                        logTransaction["binder_status"]["exception_message"].asString().c_str()));
-            } else {
-                output.append(StringPrintf(
-                        "%s(%d, \"%s\")", exceptionToString(exceptionCode).c_str(), exceptionCode,
-                        logTransaction["binder_status"]["exception_message"].asString().c_str()));
-            }
-        }
-        // return args
-        if (hasReturnArgs) {
-            output.append(StringPrintf("{%s}", fastWriter.write(returnArgs).c_str()));
-        }
-        // duration time
-        output.append(StringPrintf(" <%.2fms>", logTransaction["duration_ms"].asFloat()));
-        gLog.info("%s", output.c_str());
-    };
-
     return android::OK;
 }