PHP Classes

File: logger.class.php

Recommend this page to a friend!
  Classes of Björn Puttmann   OoMySql   ???   Download  
File: ???
Role: Auxiliary script
Content type: text/plain
Description: helper class - logging
Class: OoMySql
OO MySQL interface with logging support
Author: By
Last change: changed to log type of logmessage as well
Date: 21 years ago
Size: 2,112 bytes
 

Contents

Class file image Download
<?
/*#############################################
    logger class
    version 0.1
    some parts of this file are from Ricardo Costa - [email protected] - 2002
    from his logger class to be found at phpclasses.org - thanks
#############################################*/
class Logger {
    var
$path;
    var
$filename;
   
/* constructor
        expects: STRING logfile name, STRING logfile_rotation
        returns: VOID */
   
function Logger($path,$logfile_name,$logfile_rotation) {
       
$this->path = $path;
       
$extension = ($logfile_name == "")?"unnamed":$logfile_name;
        if (
$logfile_rotation == "DAILY")
            
$this->filename = date("Y.m.d")."_".$extension.".log";
          elseif (
$logfile_rotation == "MONTHLY")
           
$this->filename = date("Y.m")."_".$extension.".log";
        else
           
$this->filename = $extension.".log";
    }
   
   
/* public method to add a log entry to logfile
        expects: STRING message
        returns: VOID */
   
function addLog($message) { $this->_log($message); }
   
   
/* private method to write data to logfile
        expects: STRING message
        returns: VOID
        throws: FILE ERROR */
   
function _log($message, $type) {
       
$logger_file = fopen($this->path.$this->filename,"a");
        if(!
$logger_file)
            die(
"error while trying to write logdata to file. Check permissions");
       
// $ini = strlen($GLOBALS["REQUEST_URI"]) - 40;
       
$content = $this->_buildMessage($message, $type);
       
fwrite($logger_file, $content);
       
fclose($logger_file);
    }
   
   
/* private method to build logfile message
        can be overridden to create different log format
        expects: STRING message
        returns: STRING log_entry */
   
function _buildMessage($message, $type) {
      
$log_entry = date("d.m.Y :: H:m:s")." :: ".
                             
str_pad(substr($GLOBALS["REMOTE_ADDR"]." ", 0, 15), 20, ".", STR_PAD_RIGHT)." ".
                             
str_pad($GLOBALS["user_name"], 25, ".", STR_PAD_RIGHT).
                             
str_pad(substr($GLOBALS["PHP_SELF"], strrpos($GLOBALS["PHP_SELF"], "/"), strlen($GLOBALS["PHP_SELF"])), 30, ".", STR_PAD_RIGHT).
                              
"<$type> $message\n";
        return
$log_entry;
    }
}
?>