Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Checking in the original version of KLogger, found at: http://codefur…
- Loading branch information
0 parents
commit 066d429
Showing
2 changed files
with
155 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Original file line | Diff line number | Diff line change |
---|---|---|---|
@@ -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/ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Original file line | Diff line number | Diff line change |
---|---|---|---|
@@ -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 -->"; | |||
} | |||
} | |||
|
|||
} | |||
|
|||
|
|||
?> |