package com.hdl.photovoltaic.other; 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 = "自定义输出打印信息"+ (UserConfigManage.getInstance().isBAccount() ? "(B):" : "(C):"); /** * 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) { CustomLogObject customLogObject = new CustomLogObject(); customLogObject.msgOrData = msg; customLogObject.code = code; String json =logTitle; json += customLogObject.getJointMessage(); if (isPrintLogcat) { System.out.println(json); } if (isAddToMemory) { writeLog(customLogObject.getJointMessage()); } } /** * 写入日志内容到本地 * * @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 { //信息描述 public String msgOrData = ""; //状态码 public String code = "0"; public String getJointMessage() { if ("0".equals(code)) { return msgOrData; } return msgOrData + "(" + code + ")"; } } }