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; /** * 日志逻辑 */ public class HdlLogLogic { //是否需要打印到Logcat上(false不需要打印) public static boolean isPrintLogcat = true; //默认打印标题 private static String logTitle = "自定义输出打印信息"; private static Gson gson = new Gson(); /** * java打印 * * @param customizeContentFormat 自定义内容格式 */ public static void print(String customizeContentFormat) { printBase(customizeContentFormat, "0", false); } /** * java打印 * * @param customizeContentFormat 自定义内容格式 * @param isAddToMemory 是否加入内存(本地日志用到) */ public static void print(String customizeContentFormat, boolean isAddToMemory) { printBase(customizeContentFormat, "0", isAddToMemory); } /** * java打印 * * @param msg 自定义内容格式 * @param code 状态码 * @param isAddToMemory 是否加入内存(本地日志用到) */ public static void print(String msg, int code, boolean isAddToMemory) { printBase(msg, code + "", isAddToMemory); } /** * java打印和存储日志 * * @param msg 信息描述 * @param code 状态 * @param isAddToMemory 是否加入内存(本地日志用到) */ private static void printBase(String msg, String code, boolean isAddToMemory) { try { CustomLogObject customLogObject = new CustomLogObject(); customLogObject.setMsgOrData(msg); customLogObject.setCode(code); String json = logTitle + (UserConfigManage.getInstance().isBAccount() ? "(B端)==" : "(C端)==") + gson.toJson(customLogObject); if (isPrintLogcat) { System.out.println(json); } if (isAddToMemory) { writeLog(json); } } catch (Exception ignored) { } } /** * 写入日志内容到本地 * * @param strLog 写入内容 */ public static void writeLog(String strLog) { synchronized (HdlLogLogic.class) { strLog = TimeUtils.getTimeFromTimestamp(System.currentTimeMillis()) + "s%" + " " + strLog;//加打印时间(s%占位符,设置显示时间不同字体颜色) HdlFileLogic.getInstance().appendFile(HdlFileLogic.getInstance().getLogFileNamePath(), strLog); } } /** * 读取日志内容 * * @return 日志内容 */ public static String readLog() { return HdlFileLogic.getInstance().readFile(HdlFileLogic.getInstance().getLogFileNamePath()); } /** * 自定义日志类 */ static class CustomLogObject { //信息描述 private String msgOrData; //状态码 private String 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; } } }