package fq.router2.utils; import android.util.Log; import java.io.*; import java.util.Date; public class LogUtils { private static File logFile; public static String e(String msg) { try { try { Log.e("fqrouter", msg); writeLogFile("ERROR", msg); } catch (Exception e) { System.out.println(msg); } return msg; } catch (Exception e) { // ignore return msg; } } public static String e(String msg, Throwable exception) { try { try { Log.e("fqrouter", msg, exception); writeLogFile("ERROR", msg + "\r\n" + formatException(exception)); } catch (Exception e) { System.out.println(msg); exception.printStackTrace(); } return msg; } catch(Exception e) { // ignore return msg; } } private static String formatException(Throwable e) { ByteArrayOutputStream baos = new ByteArrayOutputStream(); PrintStream ps = new PrintStream(baos); e.printStackTrace(ps); ps.close(); return baos.toString(); } public static void i(String msg) { try { try { Log.i("fqrouter", msg); writeLogFile("INFO", msg); } catch (Exception e) { System.out.println(msg); } } catch (Exception e) { // ignore } } private static void writeLogFile(String level, String line) { if (logFile == null) { logFile = new File("/data/data/fq.router2/log/current-java.log"); if (logFile.length() > 1024 * 1024) { logFile.delete(); } } try { FileOutputStream outputStream = new FileOutputStream(logFile, true); try { OutputStreamWriter writer = new OutputStreamWriter(outputStream); try { writer.write(new Date() + " " + level + " " + line + "\r\n"); } finally { writer.close(); } } finally { outputStream.close(); } } catch (Exception e) { Log.e("fqrouter", "failed to write log file", e); } } }