1*ef39d40dSAndrew Rist /************************************************************** 2cdf0e10cSrcweir * 3*ef39d40dSAndrew Rist * Licensed to the Apache Software Foundation (ASF) under one 4*ef39d40dSAndrew Rist * or more contributor license agreements. See the NOTICE file 5*ef39d40dSAndrew Rist * distributed with this work for additional information 6*ef39d40dSAndrew Rist * regarding copyright ownership. The ASF licenses this file 7*ef39d40dSAndrew Rist * to you under the Apache License, Version 2.0 (the 8*ef39d40dSAndrew Rist * "License"); you may not use this file except in compliance 9*ef39d40dSAndrew Rist * with the License. You may obtain a copy of the License at 10*ef39d40dSAndrew Rist * 11*ef39d40dSAndrew Rist * http://www.apache.org/licenses/LICENSE-2.0 12*ef39d40dSAndrew Rist * 13*ef39d40dSAndrew Rist * Unless required by applicable law or agreed to in writing, 14*ef39d40dSAndrew Rist * software distributed under the License is distributed on an 15*ef39d40dSAndrew Rist * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16*ef39d40dSAndrew Rist * KIND, either express or implied. See the License for the 17*ef39d40dSAndrew Rist * specific language governing permissions and limitations 18*ef39d40dSAndrew Rist * under the License. 19*ef39d40dSAndrew Rist * 20*ef39d40dSAndrew Rist *************************************************************/ 21*ef39d40dSAndrew Rist 22*ef39d40dSAndrew Rist 23cdf0e10cSrcweir package stats; 24cdf0e10cSrcweir 25cdf0e10cSrcweir import share.LogWriter; 26cdf0e10cSrcweir 27cdf0e10cSrcweir import java.io.PrintWriter; 28cdf0e10cSrcweir import java.text.DecimalFormat; 29cdf0e10cSrcweir import java.util.Calendar; 30cdf0e10cSrcweir import java.util.GregorianCalendar; 31cdf0e10cSrcweir 32cdf0e10cSrcweir public class SimpleLogWriter extends PrintWriter implements LogWriter { 33cdf0e10cSrcweir 34cdf0e10cSrcweir boolean m_bLogging = false; 35cdf0e10cSrcweir share.DescEntry entry = null; 36cdf0e10cSrcweir share.Watcher ow = null; 37cdf0e10cSrcweir SimpleLogWriter()38cdf0e10cSrcweir public SimpleLogWriter() { 39cdf0e10cSrcweir super(System.out); 40cdf0e10cSrcweir Calendar cal = new GregorianCalendar(); 41cdf0e10cSrcweir DecimalFormat dfmt = new DecimalFormat("00"); 42cdf0e10cSrcweir super.println("LOG> Log started " + 43cdf0e10cSrcweir dfmt.format(cal.get(Calendar.DAY_OF_MONTH)) + "." + 44cdf0e10cSrcweir dfmt.format(cal.get(Calendar.MONTH)) + "." + 45cdf0e10cSrcweir dfmt.format(cal.get(Calendar.YEAR)) + " - " + 46cdf0e10cSrcweir dfmt.format(cal.get(Calendar.HOUR_OF_DAY)) + ":" + 47cdf0e10cSrcweir dfmt.format(cal.get(Calendar.MINUTE)) + ":" + 48cdf0e10cSrcweir dfmt.format(cal.get(Calendar.SECOND))); 49cdf0e10cSrcweir super.flush(); 50cdf0e10cSrcweir } 51cdf0e10cSrcweir initialize(share.DescEntry _entry, boolean _bLogging)52cdf0e10cSrcweir public boolean initialize(share.DescEntry _entry, boolean _bLogging) { 53cdf0e10cSrcweir m_bLogging = _bLogging; 54cdf0e10cSrcweir entry = _entry; 55cdf0e10cSrcweir 56cdf0e10cSrcweir return true; 57cdf0e10cSrcweir } 58cdf0e10cSrcweir println(String msg)59cdf0e10cSrcweir public void println(String msg) { 60cdf0e10cSrcweir if ((ow == null) && (entry != null)) 61cdf0e10cSrcweir { 62cdf0e10cSrcweir this.ow = (share.Watcher) entry.UserDefinedParams.get("Watcher"); 63cdf0e10cSrcweir if (this.ow != null) 64cdf0e10cSrcweir { 65cdf0e10cSrcweir this.ow.ping(); 66cdf0e10cSrcweir } 67cdf0e10cSrcweir } 68cdf0e10cSrcweir else 69cdf0e10cSrcweir { 70cdf0e10cSrcweir if (ow != null) 71cdf0e10cSrcweir { 72cdf0e10cSrcweir this.ow.ping(); 73cdf0e10cSrcweir } 74cdf0e10cSrcweir else 75cdf0e10cSrcweir { 76cdf0e10cSrcweir // special case: ow == null && entry == null 77cdf0e10cSrcweir System.out.println(msg); 78cdf0e10cSrcweir } 79cdf0e10cSrcweir } 80cdf0e10cSrcweir 81cdf0e10cSrcweir if (m_bLogging) { 82cdf0e10cSrcweir super.println("LOG> " + msg); 83cdf0e10cSrcweir super.flush(); 84cdf0e10cSrcweir } 85cdf0e10cSrcweir // else 86cdf0e10cSrcweir // { 87cdf0e10cSrcweir // super.println(" ++ " + msg); 88cdf0e10cSrcweir // super.flush(); 89cdf0e10cSrcweir // } 90cdf0e10cSrcweir } 91cdf0e10cSrcweir summary(share.DescEntry entry)92cdf0e10cSrcweir public boolean summary(share.DescEntry entry) { 93cdf0e10cSrcweir return true; 94cdf0e10cSrcweir } 95cdf0e10cSrcweir getWatcher()96cdf0e10cSrcweir public Object getWatcher() { 97cdf0e10cSrcweir return this.ow; 98cdf0e10cSrcweir } 99cdf0e10cSrcweir setWatcher(Object watcher)100cdf0e10cSrcweir public void setWatcher(Object watcher) 101cdf0e10cSrcweir { 102cdf0e10cSrcweir if (watcher != null) 103cdf0e10cSrcweir { 104cdf0e10cSrcweir entry.UserDefinedParams.put("Watcher", (share.Watcher) watcher); 105cdf0e10cSrcweir } 106cdf0e10cSrcweir } 107cdf0e10cSrcweir } 108