diff options
Diffstat (limited to 'qadevOOo/runner/stats/FileLogWriter.java')
-rw-r--r-- | qadevOOo/runner/stats/FileLogWriter.java | 141 |
1 files changed, 141 insertions, 0 deletions
diff --git a/qadevOOo/runner/stats/FileLogWriter.java b/qadevOOo/runner/stats/FileLogWriter.java new file mode 100644 index 000000000000..cfa4ccc5a617 --- /dev/null +++ b/qadevOOo/runner/stats/FileLogWriter.java @@ -0,0 +1,141 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +package stats; + +import java.io.FileWriter; +import java.io.IOException; +import share.LogWriter; + +import java.io.PrintWriter; +import java.text.DecimalFormat; +import java.util.Calendar; +import java.util.GregorianCalendar; +import java.util.HashMap; +import java.util.Iterator; + +public class FileLogWriter extends PrintWriter implements LogWriter { + + + HashMap mFileWriters = null; + boolean logging = false; + share.DescEntry entry = null; + share.Watcher ow = null; + + public FileLogWriter() { + super(System.out); + Calendar cal = new GregorianCalendar(); + DecimalFormat dfmt = new DecimalFormat("00"); + super.println("LOG> Log started " + + dfmt.format(cal.get(Calendar.DAY_OF_MONTH)) + "." + + dfmt.format(cal.get(Calendar.MONTH)) + "." + + dfmt.format(cal.get(Calendar.YEAR)) + " - " + + dfmt.format(cal.get(Calendar.HOUR_OF_DAY)) + ":" + + dfmt.format(cal.get(Calendar.MINUTE)) + ":" + + dfmt.format(cal.get(Calendar.SECOND))); + super.flush(); + } + + public boolean initialize(share.DescEntry entry, boolean logging) { + this.logging = logging; + this.entry = entry; + return true; + } + + + public void addFileLog(String filePath){ + try{ + if(mFileWriters == null) + mFileWriters = new HashMap(); + mFileWriters.put(filePath, new FileWriter(filePath)); + }catch(IOException e ){ + e.printStackTrace(this); + } + } + + + public void removeFileLog(String filePath){ + if(filePath != null) + mFileWriters.remove(filePath); + } + + + public void println(String msg) { + + this.ow = (share.Watcher) entry.UserDefinedParams.get("Watcher"); + + if (ow != null) { + ow.ping(); + } + if (logging) { + + // logoutput to console + super.println("LOG> "+msg); + super.flush(); + + //logoutput to file + if(mFileWriters != null && mFileWriters.size() > 0){ + try{ + FileWriter fw = null; + Iterator iter = mFileWriters.values().iterator(); + while(iter.hasNext()){ + fw = (FileWriter) iter.next(); + fw.write("LOG> " + msg + "\n"); + fw.flush(); + } + }catch(IOException e ){ + e.printStackTrace(this); + } + } + } + } + + public boolean summary(share.DescEntry entry) { + String header = "***** State for "+entry.longName+" ******"; + System.out.println(header); + if (entry.hasErrorMsg) { + System.out.println(entry.ErrorMsg); + System.out.println("Whole "+entry.EntryType+": "+entry.State); + } else { + System.out.println("Whole "+entry.EntryType+": "+entry.State); + } + for (int i=0;i<header.length();i++) { + System.out.print("*"); + } + System.out.println(""); + return true; + } + + public Object getWatcher() { + return this.ow; + } + + public void setWatcher(Object watcher) { + entry.UserDefinedParams.put("Watcher", (share.Watcher) watcher); + } + +} |