|
ConcreteMessageLogger.java
Created with JBuilder |
package antLogger.logClient;
import java.util.*;
import java.io.*;
import java.text.*;
/**
* ConcreteMessageLogger -
* In dieser Klasse werden die Meldungen generiert und am NetClient weitergeleitet.
*
* JAVA-Logger antLogger; Projekt der HTA Luzern->Abteilung Informatik->Software Engineering
* Authoren Patrick Bründler, Pascal Mengelt, Andy Wyss, Fabian Heusser
* Teacher: Jörg Hofstetter
* School: hta.fhz.ch, Horw;
* Project Homepage: http://www.w3p.ch/antLogger/
*
*
* LEGAL NOTICE
* THIS PROJECT AND ITS FILES ARE COPYRIGHTED BY THE AUTHORS
* THIS PROJECT CAN BE COPIED, MODIFIED AND DISTRIBUTED
* UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENCE
*
* @author Fabian Heusser
* @author Patrick Bründler
* @author Pascal Mengelt
* @author Andy Wyss
* @version 1.0 $Date$ $Revision$
* @(#) ConcreteMessageLogger
*/
public class ConcreteMessageLogger {
//Kommando um die Fester anzuzeigen.
public static final String SHOW_MSG_WNDOW_COMMAND = ""+(char)0x1C+(char)0x11;
public static final String HIDE_MSG_WNDOW_COMMAND = ""+(char)0x1C+(char)0x12;
//erzeugt die Instanz
private static ConcreteMessageLogger instance = new ConcreteMessageLogger();
private static String name;
//Streams erzeugen.
private PipedOutputStream writeEnd = new PipedOutputStream();
private PipedInputStream readEnd = new PipedInputStream();
private BufferedOutputStream bufferStream = new BufferedOutputStream(writeEnd); // additional buffer.... not necessary...
private PrintStream ps = new PrintStream(bufferStream, true);
private NetClient netcl = new NetClient(readEnd, 1234); {netcl.start();}
SimpleDateFormat formatter = new SimpleDateFormat ("yyyy-MM-dd hh:mm:ss");
/**
* public constructor overwritten (singleton)
*/
private ConcreteMessageLogger(){
name = null;
try {
readEnd.connect(writeEnd);
}
catch (Exception ex) {
ex.printStackTrace();
}
}
/**
* @param msg
* @param type INFO, MESSAGE, WARNING or ERROR
* @param objectName Name of Sender
* @param c Date and Time of logging
* @return true if message was logged, false if message couldn't be logged
*/
public synchronized void logMsg(String msg, int type, String objectName, Calendar c){
String s = formatter.format(c.getTime());
msg = msg.replace((char)0x3b, (char) 0x3a);
ps.println(s + ";" + name + ";" + objectName + ";" + MessageLogger.TYPENAMES[type] + ";" + msg);
}
/**
* The console window will be shown
*/
public void showMsgWindow(){
ps.print(SHOW_MSG_WNDOW_COMMAND);
}
/**
* The Console window will be hidden
*/
public void hideMsgWindow(){
ps.print(HIDE_MSG_WNDOW_COMMAND);
}
/**
* A instance of the MessageLogger is created. The user has to give his name which
* is his ID.
* @param name
*/
public void setName(String name_){
name = name_;
}
/**
* Get the single instance
* @return
*/
public static ConcreteMessageLogger getInstance(){
return instance;
}
protected void close(String msg, int type_, String objectName, Calendar c){
instance.logMsg(msg, type_, objectName, c);
try {
ps.flush();
ps.close();
netcl.close();
}
catch (Exception ex) {
ex.printStackTrace();
}
}
}
|
ConcreteMessageLogger.java
Created with JBuilder |