File: 0.00.1a/core/logging/LogMethodDB.php (View as HTML)

  1: <?php 
  2: /* -------------------------------------------------------------
  3: This file is part of FreeDESK
  4: 
  5: FreeDESK is (C) Copyright 2012 David Cutting
  6: 
  7: FreeDESK is free software: you can redistribute it and/or modify
  8: it under the terms of the GNU General Public License as published by
  9: the Free Software Foundation, either version 3 of the License, or
 10: (at your option) any later version.
 11: 
 12: FreeDESK is distributed in the hope that it will be useful,
 13: but WITHOUT ANY WARRANTY; without even the implied warranty of
 14: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 15: GNU General Public License for more details.
 16: 
 17: You should have received a copy of the GNU General Public License
 18: along with FreeDESK.  If not, see www.gnu.org/licenses
 19: 
 20: For more information see www.purplepixie.org/freedesk/
 21: -------------------------------------------------------------- */
 22: 
 23: /**
 24:  * LogMethodDB implements database-level logging
 25: **/
 26: class LogMethodDB extends LogMethodBase
 27: {
 28: 	/**
 29: 	 * FreeDESK instance
 30: 	**/
 31: 	private $DESK = null;
 32: 
 33: 	/**
 34: 	 * Constructor
 35: 	 * @param mixed $freeDESK FreeDESK instance
 36: 	**/
 37: 	function LogMethodDB(&$freeDESK)
 38: 	{
 39: 		$this->DESK = &$freeDESK;
 40: 		$this->DESK->PluginManager->Register(new Plugin(
 41: 			"Core Database Logging", "0.01", "Log", "Database", "LogMethodDB" ));
 42: 	}
 43: 
 44: 	/**
 45: 	 * Log an event
 46: 	 * @param string $event Event description
 47: 	 * @param string $class Event class
 48: 	 * @param string $type Event type (optional, default "")
 49: 	 * @param int $level Event level (0 = fatal, 10 = low priority info only) (optional, default 10)
 50: 	**/
 51: 	function Log($event, $class, $type="", $level=10)
 52: 	{
 53: 		if (strlen($event)>254)
 54: 			$event=substr($event,0,251)."...";
 55: 		$q="INSERT INTO ".$this->DESK->Database->Table("syslog")."(".$this->DESK->Database->Field("event_dt").",";
 56: 		$q.=$this->DESK->Database->Field("event").",".$this->DESK->Database->Field("event_class").",";
 57: 		$q.=$this->DESK->Database->Field("event_type").",".$this->DESK->Database->Field("event_level").") ";
 58: 		$q.="VALUES(NOW(),\"".$this->DESK->Database->Safe($event)."\",\"".$this->DESK->Database->Safe($class)."\",";
 59: 		$q.="\"".$this->DESK->Database->Safe($type)."\",".$this->DESK->Database->Safe($level).")";
 60: 		
 61: 		
 62: 		// Log into DB ensure report flag is false to avoid infinite loop if SQL error in this method
 63: 		$this->DESK->Database->Query($q, false);
 64: 	}
 65: 	
 66: }
 67: 
 68: ?>
 69: