Hauptseite   Packages   Klassenhierarchie   ?bersicht   Auflistung der Dateien   Datenstruktur-Elemente  

PicanaLogger.java

gehe zur Dokumentation dieser Datei
00001 /*
00002  * $Source: /shared/cvsroot/diplom/app/src/java/de/picana/ant/PicanaLogger.java,v $
00003  * $Author: mstolpe $
00004  * $Date: 2003/04/22 09:51:27 $
00005  * $Revision: 1.4 $
00006  * $Release$
00007  *
00008  * Created on 18. August 2002, 19:14
00009  *
00010  * Copyright 2002 by Marco Stolpe
00011  */
00012 
00013 package de.picana.ant;
00014 
00015 import org.apache.tools.ant.*;
00016 
00017 import java.io.*;
00018 import java.text.*;
00019 import java.util.*;
00020 
00021 
00028 public class PicanaLogger implements BuildLogger {
00029     
00030     private int log_level;
00031     private PrintStream out;
00032     private PrintStream err;
00033     private PrintWriter pw;
00034     
00035     private boolean console_logger = false;
00036     private boolean console_logger_info = false;
00037     private boolean console_logger_warn = false;
00038     private boolean console_logger_err = false;
00039     private boolean console_logger_verb = false;
00040     private boolean console_logger_dbg = false;
00041     
00042     private boolean file_logger = false;
00043     private boolean file_logger_info = false;
00044     private boolean file_logger_warn = false;
00045     private boolean file_logger_err = false;
00046     private boolean file_logger_verb = false;
00047     private boolean file_logger_dbg = false;
00048     
00049     
00051     public PicanaLogger() {
00052     }
00053  
00054     public void buildFinished(BuildEvent ev) {
00055         if (console_logger) out.println("BUILD SUCCESSFUL");
00056         if (file_logger) pw.println("BUILD SUCCESSFUL");
00057         if (pw != null)
00058             pw.close();
00059     }
00060     
00061     public void buildStarted(BuildEvent ev) {
00062         //out.println("BUILD STARTED.");        
00063     }
00064     
00065     public void messageLogged(BuildEvent ev) {
00066         
00067         String level = "";
00068         String taskname = "???";
00069         
00070         // Gegebenenfalls die Properties f?r den Logger auslesen
00071         // und den/die Logger initialisieren
00072         
00073         // Einstellungen f?r das Logging zur Konsole
00074         
00075         if (!console_logger) {
00076             
00077             if (ev.getProject() != null) {
00078             
00079                 if (ev.getProject().getProperty("logger.console.level") != null) {
00080                                         
00081                     StringTokenizer tk = new StringTokenizer(
00082                         ev.getProject().getProperty("logger.console.level"), ",");
00083                     
00084                     while (tk.hasMoreTokens()) {
00085                         String token = tk.nextToken().trim().toLowerCase();
00086                     
00087                         if (token.equals("info"))
00088                             console_logger_info = true;
00089                         if (token.equals("warn"))
00090                             console_logger_warn = true;
00091                         if (token.equals("error"))
00092                             console_logger_err = true;
00093                         if (token.equals("verbose"))
00094                             console_logger_verb = true;
00095                         if (token.equals("debug"))
00096                             console_logger_dbg = true;
00097                         if (token.equals("default")) {
00098                             console_logger_info = true;
00099                             console_logger_warn = true;
00100                             console_logger_err = true;
00101                         }
00102                         if (token.equals("all")) {
00103                             console_logger_info = true;
00104                             console_logger_warn = true;
00105                             console_logger_err = true;
00106                             console_logger_verb = true;
00107                             console_logger_dbg = true;
00108                         }              
00109                     }
00110                     
00111                     console_logger = true;
00112                 }
00113             }
00114         }
00115         
00116         // Einstellungen f?r das Logging in eine Datei
00117         
00118         if (!file_logger) {
00119             
00120             if (ev.getProject() != null) {
00121             
00122                 if ((ev.getProject().getProperty("logger.file.level") != null) &&
00123                     (ev.getProject().getProperty("logger.file.name") != null)) {
00124                                         
00125                     File logfile = new File(ev.getProject().getProperty("logger.file.name"));
00126                     try {
00127                         FileOutputStream logoutput = new FileOutputStream(logfile);
00128                         pw = new PrintWriter(logoutput);
00129                         
00130                         StringTokenizer tk = new StringTokenizer(
00131                             ev.getProject().getProperty("logger.file.level"), ",");
00132                     
00133                         while (tk.hasMoreTokens()) {
00134                             String token = tk.nextToken().trim().toLowerCase();
00135                     
00136                             if (token.equals("info"))
00137                                 file_logger_info = true;
00138                             if (token.equals("warn"))
00139                                 file_logger_warn = true;
00140                             if (token.equals("error"))
00141                                 file_logger_err = true;
00142                             if (token.equals("verbose"))
00143                                 file_logger_verb = true;
00144                             if (token.equals("debug"))
00145                                 file_logger_dbg = true;
00146                             if (token.equals("default")) {
00147                                 file_logger_info = true;
00148                                 file_logger_warn = true;
00149                                 file_logger_err = true;
00150                             }
00151                             if (token.equals("all")) {
00152                                 file_logger_info = true;
00153                                 file_logger_warn = true;
00154                                 file_logger_err = true;
00155                                 file_logger_verb = true;
00156                                 file_logger_dbg = true;
00157                             }
00158                         }
00159                     
00160                         file_logger = true;
00161                         
00162                     } catch (FileNotFoundException fnf) {}
00163                 }
00164             }
00165         }
00166         
00167         if (ev.getTask() != null)
00168             taskname = ev.getTask().getTaskName();
00169         
00170         // Logging zur Konsole
00171         
00172         if (console_logger) {
00173             if ((ev.getPriority() == Project.MSG_INFO) && console_logger_info) {
00174                 out.println("  " + getDateTimeString() + " " + getFilledString(taskname, 20)
00175                     + " [INFO]  : " + ev.getMessage());
00176             }
00177             if ((ev.getPriority() == Project.MSG_WARN) && console_logger_warn) {
00178                 out.println("  " + getDateTimeString() + " " + getFilledString(taskname, 20)
00179                     + " [WARN]  : " + ev.getMessage());
00180             }
00181             if ((ev.getPriority() == Project.MSG_ERR) && console_logger_err) {
00182                 out.println("  " + getDateTimeString() + " " + getFilledString(taskname, 20)
00183                     + " [ERROR] : " + ev.getMessage());
00184             }
00185             if ((ev.getPriority() == Project.MSG_DEBUG) && console_logger_dbg) {
00186                 out.println("  " + getDateTimeString() + " " + getFilledString(taskname, 20)
00187                     + " [DEBUG] : " + ev.getMessage());
00188             }
00189             if ((ev.getPriority() == Project.MSG_VERBOSE) && console_logger_verb) {
00190                 out.println("  " + getDateTimeString() + " " + getFilledString(taskname, 20)
00191                     + " [VERB]  : " + ev.getMessage());
00192             }
00193         }
00194         
00195         // Logging in eine Datei
00196         
00197         if (file_logger) {
00198             if ((ev.getPriority() == Project.MSG_INFO) && file_logger_info) {
00199                 pw.println("  " + getDateTimeString() + " " + getFilledString(taskname, 20)
00200                     + " [INFO]  : " + ev.getMessage());
00201             }
00202             if ((ev.getPriority() == Project.MSG_WARN) && file_logger_warn) {
00203                 pw.println("  " + getDateTimeString() + " " + getFilledString(taskname, 20)
00204                     + " [WARN]  : " + ev.getMessage());
00205             }
00206             if ((ev.getPriority() == Project.MSG_ERR) && file_logger_err) {
00207                 pw.println("  " + getDateTimeString() + " " + getFilledString(taskname, 20)
00208                     + " [ERROR] : " + ev.getMessage());
00209             }
00210             if ((ev.getPriority() == Project.MSG_DEBUG) && file_logger_dbg) {
00211                 pw.println("  " + getDateTimeString() + " " + getFilledString(taskname, 20)
00212                     + " [DEBUG] : " + ev.getMessage());
00213             }
00214             if ((ev.getPriority() == Project.MSG_VERBOSE) && file_logger_verb) {
00215                 pw.println("  " + getDateTimeString() + " " + getFilledString(taskname, 20)
00216                     + " [VERB]  : " + ev.getMessage());
00217             }
00218             pw.flush();
00219         }
00220         
00221         // Erweiterte Log-Ausgaben zum Debuggen (gibt alles aus!)
00222         //out.println(ev.getMessage());
00223     }
00224     
00225     public void targetFinished(BuildEvent ev) {
00226         if (console_logger) out.println();
00227         if (file_logger) pw.println();
00228     }
00229     
00230     public void targetStarted(BuildEvent ev) {
00231         if (console_logger) out.println(ev.getTarget().getName()+":");
00232         if (file_logger) pw.println(ev.getTarget().getName()+":");
00233     }
00234     
00235     public void taskFinished(BuildEvent ev) {
00236     }
00237     
00238     public void taskStarted(BuildEvent ev) {
00239     }
00240     
00241     public void setMessageOutputLevel(int level) {
00242         this.log_level = level;
00243     }
00244     
00245     public void setOutputPrintStream(PrintStream out) {
00246         this.out = out;
00247     }
00248     
00249     public void setEmacsMode(boolean emacsMode) {
00250     }
00251     
00252     public void setErrorPrintStream(PrintStream err) {
00253         this.err = err;    
00254     }
00255     
00256     protected String getDateTimeString() {
00257         Date now = new Date(System.currentTimeMillis());
00258         DateFormat df = DateFormat.getDateTimeInstance(DateFormat.MEDIUM, DateFormat.MEDIUM, Locale.GERMAN);
00259         return df.format(now);
00260     }
00261     
00262     protected String getFilledString(String str, int length) {
00263         StringBuffer buffer = new StringBuffer(str);
00264         if (str.length() >= length)
00265             return str;
00266         else {
00267             for (int i=0; i < length - str.length(); i++)
00268                 buffer.insert(0, ' ');
00269         }
00270         return buffer.toString();
00271     }
00272 }

Erzeugt am Tue Apr 22 11:22:56 2003 f?r Picana von doxygen1.2.18