package org.erlide.common.util; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.InputStreamReader; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.List; import org.eclipse.core.runtime.Platform; public class LogUtil { public static String getReportFile() { final String s = getReportLocation(); final String tstamp = new SimpleDateFormat("yyyyMMdd_HHmmss") .format(new Date()); return s + "/" + System.getProperty("user.name") + "_" + tstamp + ".txt"; } public static String getReportLocation() { String s = System.getProperty("erlide.logDirectory"); if (s == null) { if (SystemUtils.getInstance().isOnWindows()) { s = "\\\\vhub\\tecsas\\shade\\erlide\\reports"; } else { s = "/proj/tecsas/SHADE/erlide/reports"; } } final File dir = new File(s); if (!dir.exists()) { s = System.getProperty("user.home"); } return s; } public static String fetchErlideLog() { final StringBuffer result = new StringBuffer(); final File log = new File(ErlLogger.getInstance().getLogLocation()); try { final BufferedReader reader = new BufferedReader( new InputStreamReader(new FileInputStream(log), "UTF-8")); try { for (;;) { String line = reader.readLine(); if (line == null) { break; } line = line.trim(); if (line.length() == 0) { continue; } result.append(line).append('\n'); } } finally { reader.close(); } } catch (final Exception e) { ErlLogger.getInstance().warn(e); } return result.toString(); } public static String fetchPlatformLog() { final List<String> result = new ArrayList<String>(); final File log = Platform.getLogFileLocation().toFile(); try { final BufferedReader reader = new BufferedReader( new InputStreamReader(new FileInputStream(log), "UTF-8")); try { for (;;) { String line = reader.readLine(); if (line == null) { break; } line = line.trim(); if (line.length() == 0) { continue; } if (line.startsWith("!SESSION ")) { result.clear(); } result.add(line); } } finally { reader.close(); } } catch (final Exception e) { ErlLogger.getInstance().warn(e); } final StringBuffer buf = new StringBuffer(); for (final String s : result) { buf.append(s).append('\n'); } return buf.toString(); } public static String fetchStraceLog(final String filename) { final StringBuffer result = new StringBuffer(); final File log = new File(filename); if (log.exists()) { try { final BufferedReader reader = new BufferedReader( new InputStreamReader(new FileInputStream(log), "UTF-8")); try { for (;;) { String line = reader.readLine(); if (line == null) { break; } line = line.trim(); if (line.length() == 0) { continue; } result.append(line).append('\n'); } } finally { reader.close(); } } catch (final Exception e) { } } return result.toString(); } private LogUtil() { } }