In this example, a MySQL database is used for writing log messages. The database
"app" and the table "log" should already exist. The table should at least contain
the following columns: time, message, severity, source and category.
- <?php
- require_once 'tutorial_autoload.php';
- date_default_timezone_set( "UTC" );
-
- // Get the database instance
- $db = ezcDbInstance::get();
-
- // Get the log instance
- $log = ezcLog::getInstance();
-
- // Create a database writer attached to the database handler and the table "log"
- $writer = new ezcLogDatabaseWriter( $db, "log" );
-
- // Specify that log messages will be written to the database
- $log->getMapper()->appendRule( new ezcLogFilterRule( new ezcLogFilter, $writer, true ) );
-
- // Write a log entry ( message, severity, source, category )
- $log->log( "File '/images/spacer.gif' does not exist.", ezcLog::WARNING, array( "source" => "Application", "category" => "Design" ) );
-
- // Write a log entry ( message, severity, source, category, file, line )
- $log->log( "File '/images/spacer.gif' does not exist.", ezcLog::WARNING, array( "source" => "Application", "category" => "Design" ), array( "file" => "/index.php", "line" => 123 ) );
-
- ?>
An example SQL query to create the table is as follows:
CREATE TABLE log (
category varchar(255) NOT NULL,
file varchar(255),
id bigint NOT NULL AUTO_INCREMENT PRIMARY KEY,
line bigint,
message varchar(255) NOT NULL,
severity varchar(255) NOT NULL,
source varchar(255) NOT NULL,
time timestamp NOT NULL
);
The log table will have rows similar to the following:
array(16) {
["category"]=>
string(6) "Design"
[0]=>
string(6) "Design"
["file"]=>
NULL
[1]=>
NULL
["id"]=>
string(1) "1"
[2]=>
string(1) "1"
["line"]=>
NULL
[3]=>
NULL
["message"]=>
string(41) "File '/images/spacer.gif' does not exist."
[4]=>
string(41) "File '/images/spacer.gif' does not exist."
["severity"]=>
string(7) "Warning"
[5]=>
string(7) "Warning"
["source"]=>
string(11) "Application"
[6]=>
string(11) "Application"
["time"]=>
string(19) "2006-11-28 14:21:32"
[7]=>
string(19) "2006-11-28 14:21:32"
}