Skip to content
Snippets Groups Projects
cronlog.class.php 10.07 KiB
<?php
/**
 * central cronlog viewer
 * 
 * cronlog contains non visual methods
 * @see cronlog-renderer.class.php
 *
 * @author hahn
 */

class cronlog {
    
    
    protected $_sDataDir = "__APPDIR__/data";
    protected $_iTtlCache = 60; // in sec

    /**
     * when show an error for expired jobs (latency to execute job and sync logs)
     * @var integer
     */
    protected $_iExpiredJobsFailAfter = 60*30; // in sec
    protected $_aSkipJoblogs = array();
    
    protected $_aServers = array();
    protected $_sActiveServer = false;
    
    protected $_sFileFilter_serverjoblog = '*joblog*.done';
    protected $_sFileFilter_serverlog = '*.log';

    // ----------------------------------------------------------------------
    // MAIN
    // ----------------------------------------------------------------------

    /**
     * init
     * @return boolean
     */
    public function __construct() {

        // read config
        if (file_exists(__DIR__.'/../config/inc_cronlog.php')){
            $aCfgTemp=include(__DIR__.'/../config/inc_cronlog.php');
            $this->_sDataDir = isset($aCfgTemp['sDatadir']) ? $aCfgTemp['sDatadir'] : $this->_sDataDir;
            $this->_iTtlCache = isset($aCfgTemp['iTtlCache']) ? (int)$aCfgTemp['iTtlCache'] : $this->_iTtlCache;
            $this->_iExpiredJobsFailAfter = isset($aCfgTemp['iExpiredJobsFailAfter']) ? (int)$aCfgTemp['iExpiredJobsFailAfter'] : $this->_iExpiredJobsFailAfter;
            $this->_aSkipJoblogs = isset($aCfgTemp['aHidelogs']) && is_array($aCfgTemp['aHidelogs']) ? $aCfgTemp['aHidelogs'] : $this->_aSkipJoblogs;        
        }
        $this->_sDataDir = str_replace("__APPDIR__", dirname(dirname(__FILE__)), $this->_sDataDir);
        $this->_sDataDir = str_replace('\\', '/', $this->_sDataDir);
        
        $this->getServers();
                
        return true;
    }
    
    // ----------------------------------------------------------------------
    // private
    // ----------------------------------------------------------------------

    
    /**
     * chaching: get the full path of directory for caching
     * @return type
     */
    protected function _getCacheDir(){
        return $this->_sDataDir.'/__cache';
    }

    /**
     * caching: get full path of a caching item