<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://wiki.freedesk.purplepixie.org/w/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-gb">
		<id>http://wiki.freedesk.purplepixie.org/w/index.php?action=history&amp;feed=atom&amp;title=Logging_Module</id>
		<title>Logging Module - Revision history</title>
		<link rel="self" type="application/atom+xml" href="http://wiki.freedesk.purplepixie.org/w/index.php?action=history&amp;feed=atom&amp;title=Logging_Module"/>
		<link rel="alternate" type="text/html" href="http://wiki.freedesk.purplepixie.org/w/index.php?title=Logging_Module&amp;action=history"/>
		<updated>2026-04-13T07:09:45Z</updated>
		<subtitle>Revision history for this page on the wiki</subtitle>
		<generator>MediaWiki 1.19.0</generator>

	<entry>
		<id>http://wiki.freedesk.purplepixie.org/w/index.php?title=Logging_Module&amp;diff=72&amp;oldid=prev</id>
		<title>Dave: Created page with &quot;Logging modules provide a method for the FreeDESK log (syslog) to be outputted and stored. The default method uses a database table (syslog).  All logging modules must be deri...&quot;</title>
		<link rel="alternate" type="text/html" href="http://wiki.freedesk.purplepixie.org/w/index.php?title=Logging_Module&amp;diff=72&amp;oldid=prev"/>
				<updated>2012-08-22T00:01:23Z</updated>
		
		<summary type="html">&lt;p&gt;Created page with &amp;quot;Logging modules provide a method for the FreeDESK log (syslog) to be outputted and stored. The default method uses a database table (syslog).  All logging modules must be deri...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Logging modules provide a method for the FreeDESK log (syslog) to be outputted and stored. The default method uses a database table (syslog).&lt;br /&gt;
&lt;br /&gt;
All logging modules must be derived from the base class LogMethodBase.&lt;br /&gt;
&lt;br /&gt;
The inbuilt method logging to a database table as an example is as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;?php &lt;br /&gt;
/* -------------------------------------------------------------&lt;br /&gt;
This file is part of FreeDESK&lt;br /&gt;
&lt;br /&gt;
FreeDESK is (C) Copyright 2012 David Cutting&lt;br /&gt;
&lt;br /&gt;
FreeDESK is free software: you can redistribute it and/or modify&lt;br /&gt;
it under the terms of the GNU General Public License as published by&lt;br /&gt;
the Free Software Foundation, either version 3 of the License, or&lt;br /&gt;
(at your option) any later version.&lt;br /&gt;
&lt;br /&gt;
FreeDESK is distributed in the hope that it will be useful,&lt;br /&gt;
but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the&lt;br /&gt;
GNU General Public License for more details.&lt;br /&gt;
&lt;br /&gt;
You should have received a copy of the GNU General Public License&lt;br /&gt;
along with FreeDESK.  If not, see www.gnu.org/licenses&lt;br /&gt;
&lt;br /&gt;
For more information see www.purplepixie.org/freedesk/&lt;br /&gt;
-------------------------------------------------------------- */&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * LogMethodDB implements database-level logging&lt;br /&gt;
**/&lt;br /&gt;
class LogMethodDB extends LogMethodBase&lt;br /&gt;
{&lt;br /&gt;
	/**&lt;br /&gt;
	 * FreeDESK instance&lt;br /&gt;
	**/&lt;br /&gt;
	private $DESK = null;&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * Constructor&lt;br /&gt;
	 * @param mixed $freeDESK FreeDESK instance&lt;br /&gt;
	**/&lt;br /&gt;
	function LogMethodDB(&amp;amp;$freeDESK)&lt;br /&gt;
	{&lt;br /&gt;
		$this-&amp;gt;DESK = &amp;amp;$freeDESK;&lt;br /&gt;
		$this-&amp;gt;DESK-&amp;gt;PluginManager-&amp;gt;Register(new Plugin(&lt;br /&gt;
			&amp;quot;Core Database Logging&amp;quot;, &amp;quot;0.01&amp;quot;, &amp;quot;Log&amp;quot;, &amp;quot;Database&amp;quot;, &amp;quot;LogMethodDB&amp;quot; ));&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * Log an event&lt;br /&gt;
	 * @param string $event Event description&lt;br /&gt;
	 * @param string $class Event class&lt;br /&gt;
	 * @param string $type Event type (optional, default &amp;quot;&amp;quot;)&lt;br /&gt;
	 * @param int $level Event level (0 = fatal, 10 = low priority info only) (optional, default 10)&lt;br /&gt;
	**/&lt;br /&gt;
	function Log($event, $class, $type=&amp;quot;&amp;quot;, $level=10)&lt;br /&gt;
	{&lt;br /&gt;
		if (strlen($event)&amp;gt;254)&lt;br /&gt;
			$event=substr($event,0,251).&amp;quot;...&amp;quot;;&lt;br /&gt;
		$q=&amp;quot;INSERT INTO &amp;quot;.$this-&amp;gt;DESK-&amp;gt;Database-&amp;gt;Table(&amp;quot;syslog&amp;quot;).&amp;quot;(&amp;quot;.$this-&amp;gt;DESK-&amp;gt;Database-&amp;gt;Field(&amp;quot;event_dt&amp;quot;).&amp;quot;,&amp;quot;;&lt;br /&gt;
		$q.=$this-&amp;gt;DESK-&amp;gt;Database-&amp;gt;Field(&amp;quot;event&amp;quot;).&amp;quot;,&amp;quot;.$this-&amp;gt;DESK-&amp;gt;Database-&amp;gt;Field(&amp;quot;event_class&amp;quot;).&amp;quot;,&amp;quot;;&lt;br /&gt;
		$q.=$this-&amp;gt;DESK-&amp;gt;Database-&amp;gt;Field(&amp;quot;event_type&amp;quot;).&amp;quot;,&amp;quot;.$this-&amp;gt;DESK-&amp;gt;Database-&amp;gt;Field(&amp;quot;event_level&amp;quot;).&amp;quot;) &amp;quot;;&lt;br /&gt;
		$q.=&amp;quot;VALUES(NOW(),\&amp;quot;&amp;quot;.$this-&amp;gt;DESK-&amp;gt;Database-&amp;gt;Safe($event).&amp;quot;\&amp;quot;,\&amp;quot;&amp;quot;.$this-&amp;gt;DESK-&amp;gt;Database-&amp;gt;Safe($class).&amp;quot;\&amp;quot;,&amp;quot;;&lt;br /&gt;
		$q.=&amp;quot;\&amp;quot;&amp;quot;.$this-&amp;gt;DESK-&amp;gt;Database-&amp;gt;Safe($type).&amp;quot;\&amp;quot;,&amp;quot;.$this-&amp;gt;DESK-&amp;gt;Database-&amp;gt;Safe($level).&amp;quot;)&amp;quot;;&lt;br /&gt;
		&lt;br /&gt;
		&lt;br /&gt;
		// Log into DB ensure report flag is false to avoid infinite loop if SQL error in this method&lt;br /&gt;
		$this-&amp;gt;DESK-&amp;gt;Database-&amp;gt;Query($q, false);&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dave</name></author>	</entry>

	</feed>