com.pentaho.di.purge.IPurgeUtilityLogger.java Source code

Java tutorial

Introduction

Here is the source code for com.pentaho.di.purge.IPurgeUtilityLogger.java

Source

/*!
 * Copyright 2010 - 2015 Pentaho Corporation.  All rights reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 *
 */
package com.pentaho.di.purge;

import org.apache.commons.logging.Log;

/**
 * Below is a sample of how to use this class to generate a log file.
 * 
 * <ol>
 * <li>Initiate the job my calling the factoty method <code>PurgeUtilityLogger.createNewInstance(OutputStream,
 * purgePath)</code> to instantiate the log and supply it with an output stream to hold the log and the root folder of
 * the purge.</li>
 * <li>Call setCurrentFilePath() each time you start processing a new import file. The log shows the file being imported
 * so it must be registered.</li>
 * <li>Call endJob() when the import is done to log the finish and release resources. If the the import terminates
 * abnormally this call should be in the finally block.</li>
 * </ol>
 * 
 * To get a logger from any method use PurgeUtilitylogger.getLogger() which will return the IPurgeUtilityLog defined
 * above, or create a new phsuedo instance, if the code that's running is not part of the purgeUtility run.
 * 
 * @author TKafalas
 * 
 */
public interface IPurgeUtilityLogger extends Log {

    /**
     * Registers the file being worked on. Each log entry will list the path to the file being processed. Call this method
     * just before processing the next file. It will automatically post a "Start File Import" entry in the log.
     * 
     * @param currentFilePath
     *          path to file being imported
     */
    void setCurrentFilePath(String currentFilePath);

    /**
     * Makes an "End Import Job" log entry and releases memory associated with this log.
     */
    void endJob();

    /**
     * Log informational data. Should be called when the starting a new file and when finishing that file.
     * 
     * @param s
     *          The information message to be logged.
     */
    void info(String s);

    /**
     * Log an error.
     * 
     * @param s
     *          The Error message to be logged.
     */
    void error(String s);

    /**
     * Log debug information
     * 
     * @param s
     *          The debug message to be logged
     */
    void debug(String s);

    /**
     * Log error information
     * 
     * @param e
     *          The exception to be logged.
     */
    void error(Exception e);

    /**
     * Allows a class to check if an ImportLogger has been instantiated for the current thread.
     * 
     * @return true if the logger is present.
     */
    boolean hasLogger();
}