SOURCECODE

How to... define a Log


Description:
As desecibed in "How to 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.
This example is taken from the VideoMachine of the tutorial and shows how to define a new Log by defining a new GlobalOutputStream with the FileOutputStream to "machine.log".

ToDo's:
  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


Uses:
Log  



SourceCode

     1
    //within the main method, but may be anywhere before any logging starts
    public static void main (String[] args) {

        VideoMachine vidMachine = new VideoMachine();
        setTheShop(vidMachine);
        
         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 ioex) {
            System.err.println("Unable to create log file.");
        }
        //..


    }