Beispiel #1
0
function traceLog($msg = '', $level = 0, $file = FALSE, $dbg = FALSE)
{
    if (!$msg) {
        return;
    }
    $logLEvel = array('PHP Notice', 'PHP Warning', 'PHP Fatal error', 'PHP Critical');
    $logLEvelMail = 2;
    if (!$dbg) {
        $dbg = debug_backtrace();
        $dbg = $dbg[0];
    }
    $message = is_array($msg) ? print_r($msg, true) : $msg;
    $xlevel = isset($logLEvel[$level]) ? $logLEvel[$level] : '';
    $format = "[%date%] %xlevel%: %msg% in %file% on line %line% ";
    if ($level !== false) {
        $msg = str_replace(array('%date%', '%xlevel%', '%file%', '%line%', '%msg%'), array(date("d-M-Y H:i:s"), $xlevel, $dbg['file'], $dbg['line'], $message), $format);
    } else {
        $msg = $message;
    }
    $logFile = $file ? $file : LOGFILE_DEFAULT;
    $logFile = $file ? str_replace("%date%", date('Ymd'), $logFile) : str_replace("%date%", date(LOGFILE_DATEFORMAT), $logFile);
    $logFile = LOG_DIR . '/' . $logFile . '.log';
    $fp = @fopen($logFile, "a");
    if ($fp) {
        @fputs($fp, $msg . "\n");
        fclose($fp);
    }
    if ($level >= $logLEvelMail && (APP_MODE == 'prod' || !APP_LOCAL_SERVER)) {
        $mmsg = "Warning System: " . __CONFIG_SITE_NAME . ' - ' . $xlevel . " \n\n";
        $mmsg .= "Messaggio: " . $message . "\n\n";
        $mmsg .= 'Hostname: ' . $_SERVER['HTTP_HOST'] . "\n";
        $mmsg .= 'User agent: ' . $_SERVER['HTTP_USER_AGENT'] . "\n";
        $mmsg .= 'Livello: ' . $xlevel . "\n";
        $mmsg .= 'Data: ' . date('d/m/Y H:i:s') . "\n";
        $q = getenv("QUERY_STRING");
        if ($q) {
            $q = '?' . $q;
        }
        $mmsg .= 'Url: http://' . $_SERVER['HTTP_HOST'] . getenv("PATH_TRANSLATED") . getenv("SCRIPT_NAME") . $q . "\n";
        $mmsg .= 'Method: ' . getenv("REQUEST_METHOD") . "\n";
        $mmsg .= 'File: ' . $dbg['file'] . "\n";
        $mmsg .= 'Line: ' . $dbg['line'] . "\n";
        $mmsg .= 'IP: ' . getenv("REMOTE_ADDR") . "\n\n";
        $mailer = new PHPMailer();
        $mailer->thUrl = Th::getSiteUrl();
        $mailer->thPath = __CONFIG_SITE_PATH;
        $mailer->From = __CONFIG_SITE_TECHNICAL_CONTACT;
        $mailer->FromName = __CONFIG_SITE_NAME;
        $mailer->Subject = "PHP ALERT: " . __CONFIG_SITE_NAME . " - " . $xlevel;
        $mailer->MsgHTML(nl2br($mmsg));
        $mailer->AltBody = $mmsg;
        $mailer->AddAddress(__CONFIG_SITE_TECHNICAL_CONTACT);
        $res = $mailer->Send();
    }
}