123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114 |
- <?php
- namespace PicoFeed\Logging;
- use DateTime;
- use DateTimeZone;
- /**
- * Logging class.
- *
- * @author Frederic Guillot
- */
- class Logger
- {
- /**
- * List of messages.
- *
- * @static
- *
- * @var array
- */
- private static $messages = array();
- /**
- * Default timezone.
- *
- * @static
- *
- * @var string
- */
- private static $timezone = 'UTC';
- /**
- * Enable or disable logging.
- *
- * @static
- *
- * @var bool
- */
- public static $enable = false;
- /**
- * Enable logging.
- *
- * @static
- */
- public static function enable()
- {
- self::$enable = true;
- }
- /**
- * Add a new message.
- *
- * @static
- *
- * @param string $message Message
- */
- public static function setMessage($message)
- {
- if (self::$enable) {
- $date = new DateTime('now', new DateTimeZone(self::$timezone));
- self::$messages[] = '['.$date->format('Y-m-d H:i:s').'] '.$message;
- }
- }
- /**
- * Get all logged messages.
- *
- * @static
- *
- * @return array
- */
- public static function getMessages()
- {
- return self::$messages;
- }
- /**
- * Remove all logged messages.
- *
- * @static
- */
- public static function deleteMessages()
- {
- self::$messages = array();
- }
- /**
- * Set a different timezone.
- *
- * @static
- *
- * @see http://php.net/manual/en/timezones.php
- *
- * @param string $timezone Timezone
- */
- public static function setTimeZone($timezone)
- {
- self::$timezone = $timezone ?: self::$timezone;
- }
- /**
- * Get all messages serialized into a string.
- *
- * @static
- *
- * @return string
- */
- public static function toString()
- {
- return implode(PHP_EOL, self::$messages).PHP_EOL;
- }
- }
|