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上的标签(true:表示打印,false:表示不打印) public static boolean isStartPrintLogcat = true; //是否启动加到内存里面的标签(true:表示加入,false:表示不加入) public static boolean isStartAddToMemory = true; //默认打印标题 private static String logTitle = "";//自定义输出打印信息 private static final Gson gson = new Gson(); private static final CustomLogObject customLogObject = new CustomLogObject(); /** * 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 { // //如果这里频繁的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) { } } /** * 写入日志内容到本地 * * @param strLog 写入内容 */ public static void writeLog(String strLog) { synchronized (HdlLogLogic.class) { strLog = TimeUtils.getTimeFromTimestamp(System.currentTimeMillis(), true) + "s%" + " " + strLog;//加打印时间(s%占位符,设置显示时间不同字体颜色) HdlFileLogic.getInstance().appendFile(HdlFileLogic.getInstance().getLogFileNamePath(), strLog.replace("\\", "")); } } /** * 读取日志内容 * * @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; } } }