| 1 | package net.oni2.aeinstaller.backend.oni.management; | 
 
 
 
 
 | 2 |  | 
 
 
 
 
 | 3 | import java.io.File; | 
 
 
 
 
 | 4 | import java.io.FileNotFoundException; | 
 
 
 
 
 | 5 | import java.io.PrintWriter; | 
 
 
 
 
 | 6 |  | 
 
 
 
 
 | 7 | import net.oni2.platformtools.applicationinvoker.ApplicationInvocationResult; | 
 
 
 
 
 | 8 |  | 
 
 
 
 
 | 9 | /** | 
 
 
 
 
 | 10 | * @author Christian Illy | 
 
 
 
 
 | 11 | */ | 
 
 
 
 
 | 12 | public class Logger { | 
 
 
 
 
 | 13 | PrintWriter log = null; | 
 
 
 
 
 | 14 |  | 
 
 
 
 
 | 15 | /** | 
 
 
 
 
 | 16 | * @param logfile | 
 
 
 
 
 | 17 | *            File to log to | 
 
 
 
 
 | 18 | * @throws FileNotFoundException | 
 
 
 
 
 | 19 | *             Huh? | 
 
 
 
 
 | 20 | */ | 
 
 
 
 
 | 21 | public Logger(File logfile) throws FileNotFoundException { | 
 
 
 
 
 | 22 | log = new PrintWriter(logfile); | 
 
 
 
 
 | 23 | } | 
 
 
 
 
 | 24 |  | 
 
 
 
 
 | 25 | /** | 
 
 
 
 
 | 26 | * Print an empty line | 
 
 
 
 
 | 27 | */ | 
 
 
 
 
 | 28 | public void println() { | 
 
 
 
 
 | 29 | log.println(); | 
 
 
 
 
 | 30 | } | 
 
 
 
 
 | 31 |  | 
 
 
 
 
 | 32 | /** | 
 
 
 
 
 | 33 | * Print a string as a line | 
 
 
 
 
 | 34 | * | 
 
 
 
 
 | 35 | * @param line | 
 
 
 
 
 | 36 | *            String to print | 
 
 
 
 
 | 37 | */ | 
 
 
 
 
 | 38 | public void println(String line) { | 
 
 
 
 
 | 39 | log.println(line); | 
 
 
 
 
 | 40 | } | 
 
 
 
 
 | 41 |  | 
 
 
 
 
 | 42 | /** | 
 
 
 
 
 | 43 | * Print a formatted string as a line | 
 
 
 
 
 | 44 | * | 
 
 
 
 
 | 45 | * @param fmt | 
 
 
 
 
 | 46 | *            Format string | 
 
 
 
 
 | 47 | * @param args | 
 
 
 
 
 | 48 | *            Values | 
 
 
 
 
 | 49 | */ | 
 
 
 
 
 | 50 | public void printlnFmt(String fmt, Object... args) { | 
 
 
 
 
 | 51 | log.println(String.format(fmt, args)); | 
 
 
 
 
 | 52 | } | 
 
 
 
 
 | 53 |  | 
 
 
 
 
 | 54 | /** | 
 
 
 
 
 | 55 | * Close logger | 
 
 
 
 
 | 56 | */ | 
 
 
 
 
 | 57 | public void close() { | 
 
 
 
 
 | 58 | log.close(); | 
 
 
 
 
 | 59 | log = null; | 
 
 
 
 
 | 60 | } | 
 
 
 
 
 | 61 |  | 
 
 
 
 
 | 62 | /** | 
 
 
 
 
 | 63 | * Log the application invocation result | 
 
 
 
 
 | 64 | * | 
 
 
 
 
 | 65 | * @param result | 
 
 
 
 
 | 66 | *            App result | 
 
 
 
 
 | 67 | * @param onlyOnError | 
 
 
 
 
 | 68 | *            Print returned output only on errorcode != 0 | 
 
 
 
 
 | 69 | */ | 
 
 
 
 
 | 70 | public void logAppOutput(ApplicationInvocationResult result, | 
 
 
 
 
 | 71 | boolean onlyOnError) { | 
 
 
 
 
 | 72 | if (result != null) { | 
 
 
 
 
 | 73 | log.println("\t\t\tCalled:"); | 
 
 
 
 
 | 74 | for (String s : result.cmdLine) | 
 
 
 
 
 | 75 | log.println("\t\t\t\t" + s); | 
 
 
 
 
 | 76 | log.println("\t\t\tReturned: " + result.errorCode); | 
 
 
 
 
 | 77 | if (!onlyOnError || result.errorCode != 0) { | 
 
 
 
 
 | 78 | for (String s : result.output) | 
 
 
 
 
 | 79 | log.println("\t\t\t\t" + s); | 
 
 
 
 
 | 80 | } | 
 
 
 
 
 | 81 | log.println("\t\t\tDuration: " + result.time + " ms"); | 
 
 
 
 
 | 82 | log.println(); | 
 
 
 
 
 | 83 | } else { | 
 
 
 
 
 | 84 | log.println("\t\t\tExecution of external tool failed."); | 
 
 
 
 
 | 85 | } | 
 
 
 
 
 | 86 | } | 
 
 
 
 
 | 87 |  | 
 
 
 
 
 | 88 | } |