summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKenny <kkatzgrau@hugeinc.com>2010-06-22 21:54:38 -0400
committerKenny <kkatzgrau@hugeinc.com>2010-06-22 21:54:38 -0400
commit066d429fe7ebb2ad4336e0ce9f241a99e2fd0c34 (patch)
treea942dd15fa3f05e99633619bb2ac3283d2629f58
downloadKLogger-066d429fe7ebb2ad4336e0ce9f241a99e2fd0c34.zip
KLogger-066d429fe7ebb2ad4336e0ce9f241a99e2fd0c34.tar.gz
KLogger-066d429fe7ebb2ad4336e0ce9f241a99e2fd0c34.tar.bz2
Checking in the original version of KLogger, found at: http://codefury.net/projects/klogger/v0.1
-rw-r--r--README.markdown7
-rwxr-xr-xsrc/KLogger.php148
2 files changed, 155 insertions, 0 deletions
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 @@
+<?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
+ * 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