Main Page | Packages | Class Hierarchy | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

LoggerPrintStream.java

Go to the documentation of this file.
00001 package ikayaki.util;
00002 
00003 import java.io.OutputStream;
00004 import java.io.PrintStream;
00005 import java.text.DateFormat;
00006 import java.text.SimpleDateFormat;
00007 import java.util.Date;
00008 
00015 public class LoggerPrintStream extends PrintStream {
00016 
00017     private DateFormat dateFormat = new SimpleDateFormat("HH:mm:ss.SSS");
00018 
00019     private boolean lineStart = true;
00020 
00021     private PrintStream screen;
00022 
00028     public LoggerPrintStream(OutputStream out) {
00029         this(out, null, null);
00030     }
00031 
00038     public LoggerPrintStream(OutputStream out, PrintStream screen) {
00039         this(out, screen, null);
00040     }
00041 
00050     public LoggerPrintStream(OutputStream out, PrintStream screen, String message) {
00051         super(out);
00052         this.screen = screen;
00053         if (message != null) {
00054             if (screen != null) {
00055                 screen.print(message);
00056                 screen.println();
00057             }
00058             super.print(message);
00059             super.println();
00060         }
00061     }
00062 
00063     private void timestamp() {
00064         if (lineStart) {
00065             String timestamp = dateFormat.format(new Date()) + " -- ";
00066             if (screen != null) {
00067                 screen.print(timestamp);
00068             }
00069             super.print(timestamp);
00070         }
00071         lineStart = false;
00072     }
00073 
00074     @Override public void print(boolean b) {
00075         timestamp();
00076         if (screen != null) {
00077             screen.print(b);
00078         }
00079         super.print(b);
00080     }
00081 
00082     @Override public void print(char c) {
00083         timestamp();
00084         if (screen != null) {
00085             screen.print(c);
00086         }
00087         super.print(c);
00088     }
00089 
00090     @Override public void print(int i) {
00091         timestamp();
00092         if (screen != null) {
00093             screen.print(i);
00094         }
00095         super.print(i);
00096     }
00097 
00098     @Override public void print(long l) {
00099         timestamp();
00100         if (screen != null) {
00101             screen.print(l);
00102         }
00103         super.print(l);
00104     }
00105 
00106     @Override public void print(float f) {
00107         timestamp();
00108         if (screen != null) {
00109             screen.print(f);
00110         }
00111         super.print(f);
00112     }
00113 
00114     @Override public void print(double d) {
00115         timestamp();
00116         if (screen != null) {
00117             screen.print(d);
00118         }
00119         super.print(d);
00120     }
00121 
00122     @Override public void print(char s[]) {
00123         timestamp();
00124         if (screen != null) {
00125             screen.print(s);
00126         }
00127         super.print(s);
00128     }
00129 
00130     @Override public void print(String s) {
00131         timestamp();
00132         if (screen != null) {
00133             screen.print(s);
00134         }
00135         super.print(s);
00136     }
00137 
00138     @Override public void print(Object obj) {
00139         timestamp();
00140         if (screen != null) {
00141             screen.print(obj);
00142         }
00143         super.print(obj);
00144     }
00145 
00146     @Override public void println() {
00147         if (screen != null) {
00148             screen.println();
00149         }
00150         super.println();
00151         lineStart = true;
00152     }
00153 
00154     @Override public void println(boolean x) {
00155         this.println(x);
00156         this.println();
00157     }
00158 
00159     @Override public void println(char x) {
00160         this.println(x);
00161         this.println();
00162     }
00163 
00164     @Override public void println(int x) {
00165         this.println(x);
00166         this.println();
00167     }
00168 
00169     @Override public void println(long x) {
00170         this.println(x);
00171         this.println();
00172     }
00173 
00174     @Override public void println(float x) {
00175         this.println(x);
00176         this.println();
00177     }
00178 
00179     @Override public void println(double x) {
00180         this.println(x);
00181         this.println();
00182     }
00183 
00184     @Override public void println(char x[]) {
00185         this.println(x);
00186         this.println();
00187     }
00188 
00189     @Override public void println(String x) {
00190         this.print(x);
00191         this.println();
00192     }
00193 
00194     @Override public void println(Object x) {
00195         this.print(x);
00196         this.println();
00197     }
00198 }

Generated on Fri May 6 16:00:33 2005 for Squid by  doxygen 1.4.1