EndFileLog.ds

Note: This code is provided as a sample. It isn't a supported part of the SiteGenesis application.
/***********************************************************  
 * Name: EndFileLog.ds
 *
 * Description:
 *  Resets FileLogger to stop writing all logging events to file.
 *  This replaces the FileLogger with a normal logger in the pdict.
 *
 * @input sampleLogger   : Object
 * @output sampleLogger  : Object
 * @output sampleError   : Object
 *
 ***********************************************************/
importScript("bc_sample:library/common/libContext.ds");
importScript("bc_sample:library/utility/exception/libsampleException.ds");
importScript("bc_sample:library/utility/logging/libLog.ds");



function execute(pdict: PipelineDictionary): Number {



    var _context: Context = new Context("EndFileLog.ds");
    var _logger: Log = pdict.sampleLogger;

    try {

        if (empty(_logger)) {

            throw new sampleException(_context,
                "No Log instance found. " +
                "Make sure the corresponding 'BeginFileLog' pipelet was set on this pipeline.");
        }

        _logger.debug(_context, "Now stopped logging to file.");

        if (FileLog.prototype.isPrototypeOf(_logger)) {

            // resets logger to the original instance  
            pdict.sampleLogger = _logger.getBaseLogger();
        } else {

            // resets logwriter on logger
            _logger.setLogWriter(null);
            pdict.sampleLogger = _logger;
        }
    } catch (e) {

        // Call into error handler
        _logger.error(_context, "Error occurred processing pipelet: " + e.message);

        // wrap error into custom exception
        var exception: sampleException = new sampleException(_context, "Error occured in pipelet", e);
        pdict.sampleError = exception;

        return PIPELET_ERROR;
    }

    return PIPELET_NEXT;
}