From 4bd30dd01b09d642eaddeade6e13aa36d9d353e4 Mon Sep 17 00:00:00 2001
From: lwb <q3213421wrwqr>
Date: 星期二, 03 十一月 2020 18:37:44 +0800
Subject: [PATCH] 9527 日志写入工具

---
 SdkProject/library/src/main/java/com/secondworld/universalsdk/command/CmdInit.java |    4 -
 SdkProject/library/build.gradle                                                    |    1 
 SdkProject/library/src/main/AndroidManifest.xml                                    |    2 +
 SdkProject/build.gradle                                                            |    3 +
 SdkProject/library/src/main/java/com/secondworld/universalsdk/LogUtil.java         |   94 +++++++++++++++++++++++++++++++++++++++++++++++
 SdkProject/library/src/main/java/com/secondworld/universalsdk/H2EngineSDK.java     |    8 +++-
 SdkProject/library/src/main/java/com/secondworld/universalsdk/BaseApplication.java |    8 ++++
 7 files changed, 114 insertions(+), 6 deletions(-)

diff --git a/SdkProject/build.gradle b/SdkProject/build.gradle
index c8d7712..f04e4f3 100644
--- a/SdkProject/build.gradle
+++ b/SdkProject/build.gradle
@@ -3,10 +3,10 @@
     repositories {
         google()
         jcenter()
+        maven { url 'https://jitpack.io' }
     }
     dependencies {
         classpath "com.android.tools.build:gradle:4.1.0"
-
         // NOTE: Do not place your application dependencies here; they belong
         // in the individual module build.gradle files
     }
@@ -16,6 +16,7 @@
     repositories {
         google()
         jcenter()
+        maven { url 'https://jitpack.io' }
     }
 }
 
diff --git a/SdkProject/library/build.gradle b/SdkProject/library/build.gradle
index 512af7a..3c23e87 100644
--- a/SdkProject/library/build.gradle
+++ b/SdkProject/library/build.gradle
@@ -138,5 +138,6 @@
     androidTestImplementation 'androidx.test.ext:junit:1.1.2'
     androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'
 
+    implementation 'com.github.pqpo:Log4a:1.4.2@aar'
     implementation files('libs/unity-classes.jar')
 }
\ No newline at end of file
diff --git a/SdkProject/library/src/main/AndroidManifest.xml b/SdkProject/library/src/main/AndroidManifest.xml
index dbc3f43..d5df5a9 100644
--- a/SdkProject/library/src/main/AndroidManifest.xml
+++ b/SdkProject/library/src/main/AndroidManifest.xml
@@ -2,4 +2,6 @@
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
     package="com.secondworld.universalsdk">
 
+    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
+
 </manifest>
\ No newline at end of file
diff --git a/SdkProject/library/src/main/java/com/secondworld/universalsdk/BaseApplication.java b/SdkProject/library/src/main/java/com/secondworld/universalsdk/BaseApplication.java
index f5339c8..7956481 100644
--- a/SdkProject/library/src/main/java/com/secondworld/universalsdk/BaseApplication.java
+++ b/SdkProject/library/src/main/java/com/secondworld/universalsdk/BaseApplication.java
@@ -2,6 +2,8 @@
 
 import android.app.Application;
 
+import me.pqpo.librarylog4a.Log4a;
+
 public class BaseApplication extends Application {
 
     public static Application APP;
@@ -10,7 +12,13 @@
     public void onCreate() {
         super.onCreate();
         APP = this;
+        InitSdk();
+    }
+
+    public  void  InitSdk(){
+        LogUtil.Init(this);
         H2EngineSDK.initCommandMap();
     }
 
+
 }
diff --git a/SdkProject/library/src/main/java/com/secondworld/universalsdk/H2EngineSDK.java b/SdkProject/library/src/main/java/com/secondworld/universalsdk/H2EngineSDK.java
index f93d69e..9e3e28b 100644
--- a/SdkProject/library/src/main/java/com/secondworld/universalsdk/H2EngineSDK.java
+++ b/SdkProject/library/src/main/java/com/secondworld/universalsdk/H2EngineSDK.java
@@ -28,7 +28,8 @@
         try {
             for (String name : classesName) {
                 Class<?> aClass = Class.forName(name);
-                addCommand((ICommand) aClass.newInstance());
+                if (!aClass.isInterface())
+                    addCommand((ICommand) aClass.newInstance());
             }
         } catch (Exception e) {
             e.printStackTrace();
@@ -41,15 +42,17 @@
 
     /**
      * unity 鍙戞潵鐨勬秷鎭�
+     *
      * @param json
      */
     public static void HandleUnityMessage(String json) {
         try {
+            LogUtil.debug("HandleUnityMessage", json);
             JSONObject _json = new JSONObject(json);
             int code = _json.getInt("code");
             ICommand command = allCommand.get(code);
             if (command == null) {
-                Log.e("H2EngineSDK", "鏈煡鍛戒护");
+
                 return;
             }
             command.process(json);
@@ -59,6 +62,7 @@
 
     /**
      * 閫氳繃鍙嶅皠璇诲彇鎸囧畾鍖呭悕涓嬬殑鎵�鏈夌被鍚�
+     *
      * @param packageName
      * @return
      */
diff --git a/SdkProject/library/src/main/java/com/secondworld/universalsdk/LogUtil.java b/SdkProject/library/src/main/java/com/secondworld/universalsdk/LogUtil.java
new file mode 100644
index 0000000..61e1ff4
--- /dev/null
+++ b/SdkProject/library/src/main/java/com/secondworld/universalsdk/LogUtil.java
@@ -0,0 +1,94 @@
+package com.secondworld.universalsdk;
+
+import android.content.Context;
+import android.util.Log;
+
+import java.io.File;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.Locale;
+
+import me.pqpo.librarylog4a.Level;
+import me.pqpo.librarylog4a.Log4a;
+import me.pqpo.librarylog4a.LogData;
+import me.pqpo.librarylog4a.appender.AndroidAppender;
+import me.pqpo.librarylog4a.appender.FileAppender;
+import me.pqpo.librarylog4a.formatter.DateFileFormatter;
+import me.pqpo.librarylog4a.interceptor.Interceptor;
+import me.pqpo.librarylog4a.logger.AppenderLogger;
+
+public class LogUtil {
+
+    private static final int BUFFER_SIZE = 1024 * 1024; //鏃ュ織缂撳瓨澶у皬
+
+    private static final boolean DEBUG = BuildConfig.DEBUG;
+
+    private static final String GLOBAL_TAG = "H2EngineSDK";
+
+    public static void Init(Context context) {
+        int level = Level.VERBOSE;
+        Interceptor wrapInterceptor = new Interceptor() {
+            @Override
+            public boolean intercept(LogData logData) {
+                logData.tag = "-" + logData.tag + "锛�";
+                return true;
+            }
+        };
+        AndroidAppender androidAppender = new AndroidAppender.Builder()
+                .setLevel(level)
+                .addInterceptor(wrapInterceptor)
+                .create();
+
+        File logDir = new File(context.getExternalCacheDir() + "/logs/");
+        String buffer_path = logDir.getAbsolutePath() + File.separator + ".logCache";
+        String time = new SimpleDateFormat("yyyy_MM_dd", Locale.getDefault()).format(new Date());
+        String log_path = logDir.getAbsolutePath() + File.separator + time + ".txt";
+        FileAppender fileAppender = new FileAppender.Builder(context)
+                .setLogFilePath(log_path)
+                .setLevel(level)
+                .addInterceptor(wrapInterceptor)
+                .setBufferFilePath(buffer_path)
+                .setFormatter(new DateFileFormatter())
+                .setCompress(false)
+                .setBufferSize(BUFFER_SIZE)
+                .create();
+
+        AppenderLogger logger = new AppenderLogger.Builder()
+                .addAppender(fileAppender)
+                .create();
+
+        Log4a.setLogger(logger);
+    }
+
+    private static void print(int level, String tag, String msg, boolean debug) {
+        if (DEBUG || debug)//鎺у埗鍙拌緭鍑�
+            Log.println(level, String.format("%s-%s", GLOBAL_TAG, tag), msg);
+        else//鍐欏叆鏈湴鏂囦欢
+            Log4a.println(level, tag, msg);
+    }
+
+    public static void debug(String tag, String msg) {
+        print(Level.ERROR, tag, msg, true);
+    }
+
+    public static void v(String tag, String msg) {
+        print(Level.VERBOSE, tag, msg, false);
+    }
+
+    public static void d(String tag, String msg) {
+        print(Level.DEBUG, tag, msg, false);
+    }
+
+    public static void i(String tag, String msg) {
+        print(Level.INFO, tag, msg, false);
+    }
+
+    public static void w(String tag, String msg) {
+        print(Level.WARN, tag, msg, false);
+    }
+
+    public static void e(String tag, String msg) {
+        print(Level.ERROR, tag, msg, false);
+    }
+
+}
diff --git a/SdkProject/library/src/main/java/com/secondworld/universalsdk/command/CmdInit.java b/SdkProject/library/src/main/java/com/secondworld/universalsdk/command/CmdInit.java
index 52de6a0..491b23b 100644
--- a/SdkProject/library/src/main/java/com/secondworld/universalsdk/command/CmdInit.java
+++ b/SdkProject/library/src/main/java/com/secondworld/universalsdk/command/CmdInit.java
@@ -1,7 +1,5 @@
 package com.secondworld.universalsdk.command;
 
-import android.util.Log;
-
 import com.secondworld.universalsdk.CodeU2A;
 
 /**
@@ -15,6 +13,6 @@
 
     @Override
     public void process(String json) {
-        Log.e("ICommand", "娓告垙鍒濆鍖栵紒锛侊紒锛侊紒锛侊紒锛侊紒锛侊紒");
+
     }
 }

--
Gitblit v1.8.0