* @copyright Copyright 2007-2014, Joshua Sherman * @license http://www.opensource.org/licenses/mit-license.html * @package PICKLES * @link https://github.com/joshtronic/pickles */ /** * Log Class * * Standardized logging methods for ease of reporting. */ class Log { /** * Log Information * * @static * @param string $message message to log * @return boolean whether or not the write was successful */ public static function information($message) { return self::write('information', $message); } /** * Log Warning * * @static * @param string $message message to log * @return boolean whether or not the write was successful */ public static function warning($message) { return self::write('warning', $message); } /** * Log Error * * @static * @param string $message message to log * @return boolean whether or not the write was successful */ public static function error($message) { return self::write('error', $message); } /** * Log Slow Query * * @static * @param string $message message to log * @return boolean whether or not the write was successful */ public static function slowQuery($message) { return self::write('slow_query', $message); } /** * Log Credit Card Transaction * * @static * @param string $message message to log * @return boolean whether or not the write was successful */ public static function transaction($message) { return self::write('transaction', $message); } /** * Log PHP Error * * @static * @param string $message message to log * @return boolean whether or not the write was successful */ public static function phpError($message, $time = false) { return self::write('php_error', $message, false, $time); } /** * Log SQL Query * * @static * @param string $message message to log * @return boolean whether or not the write was successful */ public static function query($message) { return self::write('query', $message); } /** * Write Message to Log File * * @static * @access private * @param string $message message to log * @return boolean whether or not the write was successful */ private static function write($log_type, $message, $format = true, $time = false) { $config = Config::getInstance(); if (isset($config->pickles['logging']) && $config->pickles['logging']) { $log_path = LOG_PATH . date('Y/m/d/', ($time == false ? time() : $time)); if (!file_exists($log_path)) { mkdir($log_path, 0755, true); } $log_file = $log_path . $log_type . '.log'; $message .= "\n"; if ($format == true) { $backtrace = debug_backtrace(); rsort($backtrace); $frame = $backtrace[strpos($backtrace[0]['file'], 'index.php') === false ? 0 : 1]; return file_put_contents($log_file, date('H:i:s') . ' ' . str_replace(getcwd(), '', $frame['file']) . ':' . $frame['line'] . ' ' . $message, FILE_APPEND); } else { return file_put_contents($log_file, $message, FILE_APPEND); } } return false; } } ?>