MergeHandleLogEvent
        if (log == null)
        {
            String logFilename = this.settings.getLogFile();
            String loggingImplementation = this.settings.getLoggingImplementation();
            
            if ( (loggingImplementation != null) || (logFilename != null) )                  
            {
                try
                {
                    org.osid.logging.LoggingManager loggingManager =
                        (org.osid.logging.LoggingManager)org.osid.OsidLoader.getManager(
                            "org.osid.logging.LoggingManager",
                            loggingImplementation,
                            this.settings.getContext(),
                            new java.util.Properties());
                    try
                    {
                        log = loggingManager.getLogForWriting(logFilename);
                    }
                    catch (Throwable t)
                    {
                        log = loggingManager.createLog(logFilename);
                    }
                    log.assignFormatType(this.settings.getLogFormatType());
                    log.assignPriorityType(this.settings.getLogPriorityType());
                }
                catch (Throwable t) 
                {
                    //maybe we just echo to the console
                    System.out.println("failed to load logging manager " + t.getMessage());
                }
            }
        }
        
        String message = raiser.getLogMessage();
        if ( (log != null) && (message != null) )
        {
            try
            {
                this.log.appendLog(message);
            }
            catch (Throwable t) 
            {
                System.out.println(t.getMessage());
            }
        }
        if (this.settings.isDebugMode())
        {
            System.out.println(message);
        }