lwb
2020-11-03 4bd30dd01b09d642eaddeade6e13aa36d9d353e4
9527 日志写入工具
6个文件已修改
1个文件已添加
118 ■■■■■ 已修改文件
SdkProject/build.gradle 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SdkProject/library/build.gradle 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SdkProject/library/src/main/AndroidManifest.xml 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SdkProject/library/src/main/java/com/secondworld/universalsdk/BaseApplication.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SdkProject/library/src/main/java/com/secondworld/universalsdk/H2EngineSDK.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SdkProject/library/src/main/java/com/secondworld/universalsdk/LogUtil.java 94 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SdkProject/library/src/main/java/com/secondworld/universalsdk/command/CmdInit.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
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' }
    }
}
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')
}
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>
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();
    }
}
SdkProject/library/src/main/java/com/secondworld/universalsdk/H2EngineSDK.java
@@ -28,6 +28,7 @@
        try {
            for (String name : classesName) {
                Class<?> aClass = Class.forName(name);
                if (!aClass.isInterface())
                addCommand((ICommand) aClass.newInstance());
            }
        } catch (Exception e) {
@@ -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
     */
SdkProject/library/src/main/java/com/secondworld/universalsdk/LogUtil.java
New file
@@ -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);
    }
}
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", "游戏初始化!!!!!!!!!!!");
    }
}