yocto: CB1 optimize fake logcat log display  [1/1]

PD#SWPL-145960

Problem:
optimize fake logcat log display

Solution:
optimize fake logcat log display

Verify:
  Local

Signed-off-by: yanmei.yang <yanmei.yang@amlogic.com>
Change-Id: I363120995466925c18391e9a5ba8fb0ed83376fe
diff --git a/liblog/fake_log_device.c b/liblog/fake_log_device.c
index a3b3166..850fd07 100644
--- a/liblog/fake_log_device.c
+++ b/liblog/fake_log_device.c
@@ -92,12 +92,13 @@
     int writeLen;
     int stdoutFlag;
     int outFd;
+    char nooutputfile;
     char keepFile;
     char format[16];
     char logPath[64];
 }FakeLogEnv;
 
-static FakeLogEnv  logEnv = {0, 1048576, 0, 0, -1, 0, "time", "/data"};
+static FakeLogEnv  logEnv = {0, 1048576, 0, 0, -1, 0, 0, "time", "/data"};
 
 
 #ifdef HAVE_PTHREADS
@@ -287,8 +288,8 @@
     /*
      * Taken from the long-dead utils/Log.cpp
      */
-    const char* fstr = getenv("ANDROID_PRINTF_LOG");
-
+    //const char* fstr = getenv("ANDROID_PRINTF_LOG");
+    const char *fstr = logEnv.format;
     LogFormat format;
     if (fstr == NULL) {
         format = FORMAT_BRIEF;
@@ -311,7 +312,8 @@
             format = (LogFormat) atoi(fstr);        // really?!
     }
 
-    logState->outputFormat = FORMAT_TIME;//format;
+    fprintf(stderr, "liglog:  format: %d\n", format);
+    logState->outputFormat = format;
 }
 
 /*
@@ -448,6 +450,12 @@
             if (!pathini) {
                 p = getKeyValue(buf, "LOG_PATH");
                 if (p) {
+                    if (!strcmp (p, "/dev/null")) {
+                        logEnv.nooutputfile = 1;
+                        pathini = 1;
+                        continue;;
+                    }
+
                     char dir[32];
                     sprintf(dir, "%s/logcat/", p);
                     struct stat sb;
@@ -507,6 +515,7 @@
         free(buf);
     }
     fclose(fp);
+    logEnv.initFlag = 1;
 }
 
 /*
@@ -517,6 +526,9 @@
 static void showLog(LogState *state,
         int logPrio, const char* tag, const char* msg)
 {
+    if (logEnv.initFlag && logEnv.nooutputfile)
+        return;
+
 #if defined(HAVE_LOCALTIME_R)
     struct tm tmBuf;
 #endif
@@ -680,11 +692,6 @@
      * somewhat by wrapping the writev call in the Mutex.
      */
 
-    if (!logEnv.initFlag) {
-        initLogcatEnv();
-        logEnv.initFlag = 1;
-    }
-
     if (logEnv.initFlag && logEnv.outFd < 0 ) {
         if (logEnv.stdoutFlag) {
             logEnv.outFd = fileno(stderr);
@@ -822,6 +829,8 @@
 
     lock();
 
+    initLogcatEnv();
+
     logState = createLogState();
     if (logState != NULL) {
         configureInitialState(pathName, logState);