|
@@ -1,95 +1,95 @@
|
|
|
<?php defined('SYSPATH') OR die('No direct script access.');
|
|
|
/**
|
|
|
- * Log writer abstract class. All [Log] writers must extend this class.
|
|
|
- *
|
|
|
- * @package Kohana
|
|
|
- * @category Logging
|
|
|
- * @author Kohana Team
|
|
|
- * @copyright (c) 2008-2012 Kohana Team
|
|
|
- * @license http://kohanaframework.org/license
|
|
|
- */
|
|
|
+* Log writer abstract class. All [Log] writers must extend this class.
|
|
|
+*
|
|
|
+* @package Kohana
|
|
|
+* @category Logging
|
|
|
+* @author Kohana Team
|
|
|
+* @copyright (c) 2008-2012 Kohana Team
|
|
|
+* @license http://kohanaframework.org/license
|
|
|
+*/
|
|
|
abstract class Kohana_Log_Writer {
|
|
|
|
|
|
- /**
|
|
|
- * @var string timestamp format for log entries.
|
|
|
- *
|
|
|
- * Defaults to Date::$timestamp_format
|
|
|
- */
|
|
|
- public static $timestamp;
|
|
|
+/**
|
|
|
+* @var string timestamp format for log entries.
|
|
|
+*
|
|
|
+* Defaults to Date::$timestamp_format
|
|
|
+*/
|
|
|
+public static $timestamp;
|
|
|
|
|
|
- /**
|
|
|
- * @var string timezone for log entries
|
|
|
- *
|
|
|
- * Defaults to Date::$timezone, which defaults to date_default_timezone_get()
|
|
|
- */
|
|
|
- public static $timezone;
|
|
|
+/**
|
|
|
+* @var string timezone for log entries
|
|
|
+*
|
|
|
+* Defaults to Date::$timezone, which defaults to date_default_timezone_get()
|
|
|
+*/
|
|
|
+public static $timezone;
|
|
|
|
|
|
- /**
|
|
|
- * Numeric log level to string lookup table.
|
|
|
- * @var array
|
|
|
- */
|
|
|
- protected $_log_levels = array(
|
|
|
- LOG_EMERG => 'EMERGENCY',
|
|
|
- LOG_ALERT => 'ALERT',
|
|
|
- LOG_CRIT => 'CRITICAL',
|
|
|
- LOG_ERR => 'ERROR',
|
|
|
- LOG_WARNING => 'WARNING',
|
|
|
- LOG_NOTICE => 'NOTICE',
|
|
|
- LOG_INFO => 'INFO',
|
|
|
- LOG_DEBUG => 'DEBUG',
|
|
|
- );
|
|
|
+/**
|
|
|
+* Numeric log level to string lookup table.
|
|
|
+* @var array
|
|
|
+*/
|
|
|
+protected $_log_levels = array(
|
|
|
+LOG_EMERG => 'EMERGENCY',
|
|
|
+LOG_ALERT => 'ALERT',
|
|
|
+LOG_CRIT => 'CRITICAL',
|
|
|
+LOG_ERR => 'ERROR',
|
|
|
+LOG_WARNING => 'WARNING',
|
|
|
+LOG_NOTICE => 'NOTICE',
|
|
|
+LOG_INFO => 'INFO',
|
|
|
+LOG_DEBUG => 'DEBUG',
|
|
|
+);
|
|
|
|
|
|
- /**
|
|
|
- * @var int Level to use for stack traces
|
|
|
- */
|
|
|
- public static $strace_level = LOG_DEBUG;
|
|
|
+/**
|
|
|
+* @var int Level to use for stack traces
|
|
|
+*/
|
|
|
+public static $strace_level = LOG_DEBUG;
|
|
|
|
|
|
- /**
|
|
|
- * Write an array of messages.
|
|
|
- *
|
|
|
- * $writer->write($messages);
|
|
|
- *
|
|
|
- * @param array $messages
|
|
|
- * @return void
|
|
|
- */
|
|
|
- abstract public function write(array $messages);
|
|
|
+/**
|
|
|
+* Write an array of messages.
|
|
|
+*
|
|
|
+* $writer->write($messages);
|
|
|
+*
|
|
|
+* @param array $messages
|
|
|
+* @return void
|
|
|
+*/
|
|
|
+abstract public function write(array $messages);
|
|
|
|
|
|
- /**
|
|
|
- * Allows the writer to have a unique key when stored.
|
|
|
- *
|
|
|
- * echo $writer;
|
|
|
- *
|
|
|
- * @return string
|
|
|
- */
|
|
|
- final public function __toString()
|
|
|
- {
|
|
|
- return spl_object_hash($this);
|
|
|
- }
|
|
|
+/**
|
|
|
+* Allows the writer to have a unique key when stored.
|
|
|
+*
|
|
|
+* echo $writer;
|
|
|
+*
|
|
|
+* @return string
|
|
|
+*/
|
|
|
+final public function __toString()
|
|
|
+{
|
|
|
+return spl_object_hash($this);
|
|
|
+}
|
|
|
|
|
|
- /**
|
|
|
- * Formats a log entry.
|
|
|
- *
|
|
|
- * @param array $message
|
|
|
- * @param string $format
|
|
|
- * @return string
|
|
|
- */
|
|
|
- public function format_message(array $message, $format = "time --- level: body in file:line")
|
|
|
- {
|
|
|
- $message['time'] = Date::formatted_time('@'.$message['time'], Log_Writer::$timestamp, Log_Writer::$timezone, TRUE);
|
|
|
- $message['level'] = $this->_log_levels[$message['level']];
|
|
|
+/**
|
|
|
+* Formats a log entry.
|
|
|
+*
|
|
|
+* @param array $message
|
|
|
+* @param string $format
|
|
|
+* @return string
|
|
|
+*/
|
|
|
+public function format_message(array $message, $format = "time --- level: body in file:line")
|
|
|
+{
|
|
|
+$message['time'] = Date::formatted_time('@'.$message['time'], Log_Writer::$timestamp, Log_Writer::$timezone, TRUE);
|
|
|
+$message['level'] = $this->_log_levels[$message['level']];
|
|
|
|
|
|
- $string = strtr($format, $message);
|
|
|
+$string = strtr($format, array_filter($message, 'is_scalar'));
|
|
|
|
|
|
- if (isset($message['additional']['exception']))
|
|
|
- {
|
|
|
- // Re-use as much as possible, just resetting the body to the trace
|
|
|
- $message['body'] = $message['additional']['exception']->getTraceAsString();
|
|
|
- $message['level'] = $this->_log_levels[Log_Writer::$strace_level];
|
|
|
+if (isset($message['additional']['exception']))
|
|
|
+{
|
|
|
+// Re-use as much as possible, just resetting the body to the trace
|
|
|
+$message['body'] = $message['additional']['exception']->getTraceAsString();
|
|
|
+$message['level'] = $this->_log_levels[Log_Writer::$strace_level];
|
|
|
|
|
|
- $string .= PHP_EOL.strtr($format, $message);
|
|
|
- }
|
|
|
+$string .= PHP_EOL.strtr($format, array_filter($message, 'is_scalar'));
|
|
|
+}
|
|
|
|
|
|
- return $string;
|
|
|
- }
|
|
|
+return $string;
|
|
|
+}
|
|
|
|
|
|
-} // End Kohana_Log_Writer
|
|
|
+}
|