From 066d429fe7ebb2ad4336e0ce9f241a99e2fd0c34 Mon Sep 17 00:00:00 2001 From: Kenny Date: Tue, 22 Jun 2010 21:54:38 -0400 Subject: [PATCH] Checking in the original version of KLogger, found at: http://codefury.net/projects/klogger/ --- README.markdown | 7 +++ src/KLogger.php | 148 ++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 155 insertions(+) create mode 100644 README.markdown create mode 100755 src/KLogger.php diff --git a/README.markdown b/README.markdown new file mode 100644 index 0000000..e3234c9 --- /dev/null +++ b/README.markdown @@ -0,0 +1,7 @@ +# KLogger: A Simple Logging Class For PHP + +A project written by Kenny Katzgrau and originally hosted at (CodeFury.net)[http://codefury.net) + +## Documentation + +For the documentation to this release, check out: http://codefury.net/projects/klogger/ diff --git a/src/KLogger.php b/src/KLogger.php new file mode 100755 index 0000000..9f53788 --- /dev/null +++ b/src/KLogger.php @@ -0,0 +1,148 @@ + + * Date : July 26, 2008 + * Comments : Originally written for use with wpSearch + * Website : http://codefury.net + * 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 -->"; + } + } + + } + + +?> \ No newline at end of file