Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- /* Finally, A light, permissions-checking logging class.
- *
- * Author : Kenneth Katzgrau < katzgrau@gmail.com >
- * Date : July 26, 2008
- * Comments : Originally written for use with wpSearch
- * Website : http://codefury.net
- * http://codefury.net/2008/07/klogger-a-simple-logging-class-for-php/
- * Version : 1.0
- *
- * Usage:
- * $log = new KLogger ( "log.txt" , KLogger::INFO );
- * $log->LogInfo("Returned a million search results"); //Prints to the log file
- * $log->LogFATAL("Oh dear."); //Prints to the log file
- * $log->LogDebug("x = 5"); //Prints nothing due to priority setting
- */
- class KLogger
- {
- const DEBUG = 1; // Most Verbose
- const INFO = 2; // ...
- const WARN = 3; // ...
- const ERROR = 4; // ...
- const FATAL = 5; // Least Verbose
- const OFF = 6; // Nothing at all.
- const LOG_OPEN = 1;
- const OPEN_FAILED = 2;
- const LOG_CLOSED = 3;
- /* Public members: Not so much of an example of encapsulation, but that's okay. */
- public $Log_Status = KLogger::LOG_CLOSED;
- public $DateFormat = "Y-m-d G:i:s";
- public $MessageQueue;
- private $log_file;
- private $priority = KLogger::INFO;
- private $file_handle;
- public function __construct($filepath, $priority)
- {
- if ($priority == KLogger::OFF)
- return;
- $this->log_file = $filepath;
- $this->MessageQueue = array();
- $this->priority = $priority;
- if (file_exists($this->log_file)) {
- if (!is_writable($this->log_file)) {
- $this->Log_Status = KLogger::OPEN_FAILED;
- $this->MessageQueue[] = "The file exists, but could not be opened for writing. Check that appropriate permissions have been set.";
- return;
- }
- }
- if ($this->file_handle = fopen($this->log_file, "a")) {
- $this->Log_Status = KLogger::LOG_OPEN;
- $this->MessageQueue[] = "The log file was opened successfully.";
- } else {
- $this->Log_Status = KLogger::OPEN_FAILED;
- $this->MessageQueue[] = "The file could not be opened. Check permissions.";
- }
- return;
- }
- public function __destruct()
- {
- if ($this->file_handle)
- fclose($this->file_handle);
- }
- public function LogInfo($line)
- {
- $this->Log($line, KLogger::INFO);
- }
- public function LogDebug($line)
- {
- $this->Log($line, KLogger::DEBUG);
- }
- public function LogWarn($line)
- {
- $this->Log($line, KLogger::WARN);
- }
- public function LogError($line)
- {
- $this->Log($line, KLogger::ERROR);
- }
- public function LogFatal($line)
- {
- $this->Log($line, KLogger::FATAL);
- }
- public function Log($line, $priority)
- {
- if ($this->priority <= $priority) {
- $status = $this->getTimeLine($priority);
- $this->WriteFreeFormLine("$status $line \n");
- }
- }
- public function WriteFreeFormLine($line)
- {
- if ($this->Log_Status == KLogger::LOG_OPEN && $this->priority != KLogger::OFF) {
- if (fwrite($this->file_handle, $line) === false) {
- $this->MessageQueue[] = "The file could not be written to. Check that appropriate permissions have been set.";
- }
- }
- }
- private function getTimeLine($level)
- {
- $time = date($this->DateFormat);
- switch ($level) {
- case KLogger::INFO:
- return "$time - INFO -->";
- case KLogger::WARN:
- return "$time - WARN -->";
- case KLogger::DEBUG:
- return "$time - DEBUG -->";
- case KLogger::ERROR:
- return "$time - ERROR -->";
- case KLogger::FATAL:
- return "$time - FATAL -->";
- default:
- return "$time - LOG -->";
- }
- }
- }
- $logger = New KLogger(APP_PATH . 'log/cspum.log', KLogger::DEBUG);
- $log =& $logger;
- ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement