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.
1. <?php
2. require_once 'tutorial_autoload.php';
3. date_default_timezone_set( "UTC" );
4.
5. // Get the database instance
6. $db = ezcDbInstance::get();
7.
8. // Get the log instance
9. $log = ezcLog::getInstance();
10.
11. // Create a database writer attached to the database handler and the table "log"
12. $writer = new ezcLogDatabaseWriter( $db, "log" );
13.
14. // Specify that log messages will be written to the database
15. $log->getMapper()->appendRule( new ezcLogFilterRule( new ezcLogFilter, $writer, true ) );
16.
17. // Write a log entry ( message, severity, source, category )
18. $log->log( "File '/images/spacer.gif' does not exist.", ezcLog::WARNING, array( "source" => "Application", "category" => "Design" ) );
19.
20. // Write a log entry ( message, severity, source, category, file, line )
21. $log->log( "File '/images/spacer.gif' does not exist.", ezcLog::WARNING, array( "source" => "Application", "category" => "Design" ), array( "file" => "/index.php", "line" => 123 ) );
22.
23. ?>
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"
}