wjc
2025-05-12 1dd74507e6e80abf235c1ea6c33bdda0987510af
app/src/main/java/com/hdl/photovoltaic/other/HdlLogLogic.java
@@ -1,6 +1,10 @@
package com.hdl.photovoltaic.other;
import android.util.LruCache;
import com.google.gson.Gson;
import com.hdl.photovoltaic.config.UserConfigManage;
import com.hdl.photovoltaic.utils.TimeUtils;
/**
@@ -8,62 +12,73 @@
 */
public class HdlLogLogic {
    //是否需要打印到Logcat上(true不需要打印)
    public static boolean isPrintLogcat = false;
    //是否启动打印到Logcat上的标签(true:表示打印,false:表示不打印)
    public static boolean isStartPrintLogcat = true;
    //是否启动加到内存里面的标签(true:表示加入,false:表示不加入)
    public static boolean isStartAddToMemory = true;
    //默认打印标题
    private static final String title = "自定义输出打印信息:";
    private static String logTitle = "";//自定义输出打印信息
    private static final Gson gson = new Gson();
    private static final CustomLogObject customLogObject = new CustomLogObject();
    /**
     * java打印
     *
     * @param content 自定义信息描述
     * @param customizeContentFormat 自定义内容格式
     */
    public static void print(String content) {
        printBase(content, "0", false);
    public static void print(String customizeContentFormat) {
        printBase(customizeContentFormat, "0", false);
    }
    /**
     * java打印
     *
     * @param content   自定义信息描述
     * @param isBoolean 是否加入内存(本地日志用到)
     * @param customizeContentFormat 自定义内容格式
     * @param isAddToMemory          是否加入内存(本地日志用到)
     */
    public static void print(String content, boolean isBoolean) {
        printBase(content, "0", isBoolean);
    public static void print(String customizeContentFormat, boolean isAddToMemory) {
        printBase(customizeContentFormat, "0", isAddToMemory);
    }
    /**
     * java打印
     *
     * @param msg       自定义信息描述
     * @param code      状态码
     * @param isBoolean 是否加入内存(本地日志用到)
     * @param msg           自定义内容格式
     * @param code          状态码
     * @param isAddToMemory 是否加入内存(本地日志用到)
     */
    public static void print(String msg, int code, boolean isBoolean) {
        printBase(msg, code + "", isBoolean);
    public static void print(String msg, int code, boolean isAddToMemory) {
        printBase(msg, code + "", isAddToMemory);
    }
    /**
     * java打印和存储日志
     *
     * @param msg       信息描述
     * @param code      状态
     * @param isBoolean 是否加入内存(本地日志用到)
     * @param msg           信息描述
     * @param code          状态
     * @param isAddToMemory 是否加入内存(本地日志用到)
     */
    private static void printBase(String msg, String code, boolean isBoolean) {
        if (isPrintLogcat) {
            return;
        }
        CustomLogObject customLogObject = new CustomLogObject();
        customLogObject.msgOrData = msg;
        customLogObject.code = code;
        String json = title;
        json += customLogObject.getJointMessage();
        System.out.println(json);
        if (isBoolean) {
            writeLog(customLogObject.getJointMessage());
    private static void printBase(String msg, String code, boolean isAddToMemory) {
        try {
//            //如果这里频繁的new对象可能会影响加载数据速度
//            CustomLogObject customLogObject = new CustomLogObject();
            customLogObject.setMsgOrData(msg);
            customLogObject.setCode(code);
            String json = logTitle + (UserConfigManage.getInstance().isBAccount() ? "(B端)==" : "(C端)==") + gson.toJson(customLogObject);
            if (isStartPrintLogcat) {
                System.out.println(json.replace("\\", ""));
            }
            if (isStartAddToMemory) {
                if (isAddToMemory) {
                    writeLog(json);
                }
            }
        } catch (Exception ignored) {
        }
    }
@@ -75,8 +90,9 @@
     */
    public static void writeLog(String strLog) {
        synchronized (HdlLogLogic.class) {
            strLog = TimeUtils.getTimeFromTimestamp(System.currentTimeMillis()) + "s%" + " " + strLog;//加打印时间(s%占位符,设置显示时间不同字体颜色)
            HdlFileLogic.getInstance().appendFile(HdlFileLogic.getInstance().getLogFilePath(), strLog);
            strLog = TimeUtils.getTimeFromTimestamp(System.currentTimeMillis(), true) + "s%" + " " + strLog;//加打印时间(s%占位符,设置显示时间不同字体颜色)
            HdlFileLogic.getInstance().appendFile(HdlFileLogic.getInstance().getLogFileNamePath(), strLog.replace("\\", ""));
        }
    }
@@ -86,7 +102,7 @@
     * @return 日志内容
     */
    public static String readLog() {
        return HdlFileLogic.getInstance().readFile(HdlFileLogic.getInstance().getLogFilePath());
        return HdlFileLogic.getInstance().readFile(HdlFileLogic.getInstance().getLogFileNamePath());
    }
@@ -94,19 +110,30 @@
     * 自定义日志类
     */
    static class CustomLogObject {
        //信息描述
        public String msgOrData = "";
        private String msgOrData;
        //状态码
        public String code = "0";
        private String code;
        public String getJointMessage() {
            if ("0".equals(code)) {
                return msgOrData;
            }
            return msgOrData + "(" + code + ")";
        public String getMsgOrData() {
            return msgOrData == null ? "" : msgOrData;
        }
        public void setMsgOrData(String msgOrData) {
            this.msgOrData = msgOrData;
        }
        public String getCode() {
            return code == null ? "0" : code;
        }
        public void setCode(String code) {
            this.code = code;
        }
    }