package com.xenoage.utils.android.log; import static com.xenoage.utils.log.Level.Remark; import java.io.PrintStream; import java.text.DateFormat; import java.util.Date; import android.util.Log; import com.xenoage.utils.log.Level; import com.xenoage.utils.log.LogProcessing; import com.xenoage.utils.log.Report; /** * Logging class for Android applications. * It is using the {@link Log} class. * * @author Andreas Wenger */ public class AndroidLogProcessing implements LogProcessing { /** * Initialize the logging class. */ public AndroidLogProcessing(String appNameAndVersion) { try { //start message println(Remark, "Logging started for: " + appNameAndVersion); //os println( Remark, "Operating system: " + System.getProperty("os.name") + ", " + System.getProperty("os.version")); //java version println(Remark, "Java version: " + System.getProperty("java.version")); } catch (Exception ex) { throw new RuntimeException(ex); } } @Override public void log(Report report) { println(report.level, report.toString()); } @Override public void close() { println(Remark, "Logging closed"); } /** * Returns the current time in the format HH:MM:SS. */ private static String time() { DateFormat df = DateFormat.getTimeInstance(DateFormat.MEDIUM); return df.format(new Date()); } /** * Prints the current time, the given log level and message * into the log. */ private void println(Level level, String s) { Log.d("ZONG", time() + " " + level.getFixedString() + " " + s); } }