HowTos Log Management

Aus Salespoint

Dies ist eine alte Version. Zeitpunkt der Bearbeitung: 22:21, 5. Apr. 2009 durch Freekmastah (Diskussion | Beiträge).
Wechseln zu: Navigation, Suche

Inhaltsverzeichnis

Define a Log

Description: As described in #Understand logging, a Log is the representation of the "log file", which only is a real file, if the specified OutputStream is the recommended FileOutputstream. For a global Log, you only have to define a GlobalOutputStream by calling the static method Log.setGlobalLogOutputStream(OutputStream newOS). For local logging, you have to initialize a new instance of Log, either by using the constructor, the static method Log.createLog(OutputStream newOS) or a LogCreator.

ToDo:

  1. For the initialization find a place at the beginning of your application runtime to make sure, the LogOutputStream exists before any logging starts.
  2. Due to the new FileOutputStream, remember to catch the thrown IOException.
  3. Use the static method setGlobalOutputStream, which will initialize a new Log and a globally reachable OutputStream, enabling logging to it anywhere in your application.

Example Source Code:

1
// within the main method, but may be anywhere before any logging starts
public static void main(String[] args)
{
LogShop logShop = new LogShop();
Shop.setTheShop(logShop);
 
2
// remember to catch the possible IOException of creating a new FileOutputStream
try
{
3
// the static method will initialize a new Log and set the FileOutputStream global
// so it can be used anywhere in the application
Log.setGlobalOutputStream(new FileOutputStream("machine.log", true));
}
catch(IOException ioException)
{
System.err.println("Unable to create log file.");
}
}

Define a new LogEntry

Description: A LogEntry is what is being put into the LogOutputStream when logging an event. The information needed for the Log is provided by the two methods public String toString() and public Date getLogDate(). These are the methods to be redefined in order to suit your event log. By default they return "Object logged: " + getLogDate() and the present system date at the point of logging. In our OpenLogEntry we keep the system date as return of getLogDate, but redefine the toString() method to return the String "Counter opened".

ToDo:

  1. Create a new subclass of LogEntry.
  2. Redefine the toString() method to return a suitable text for the event.
  3. Use the LogEntry to be returned by the method getLogData() of the implementation of Loggable.

Example Source Code:

1
public class OpenLogEntry extends LogEntry
{
 
2
public String toString()
{
return "Counter opened";
}
}

Define a new LogEntryFilter

Define a new ProcessLogEntry

Implement the Interface Loggable

Log the opening and closing of a SalesPoint

Log the opening and closing of a log file

Understand logging

Persönliche Werkzeuge