log4php เป็น library ที่ถูก export จาก project log4j ของฝั่ง Java เป็นชุดคำสั่งที่ช่วยอำนวยความสะดวกในการสร้าง log file
ระดับ | ความสำคัญ | คำอธิบาย --- | --- | --- FATAL | Highest | Very severe error events that will presumably lead the application to abort. ERROR | ... | Error events that might still allow the application to continue running. WARN | ... |Potentially harmful situations which still allow the application to continue running. INFO | ... | Informational messages that highlight the progress of the application at coarse-grained level. DEBUG | ... | Fine-grained informational events that are most useful to debug an application. TRACE | Lowest | Finest-grained informational events.
จะเห็นว่าการเก็บข้อความในรูปแบบ log file จะมีประโยชน์อย่างมากทั้งในด้านค้นหาข้อผิดพลาดของโปรแกรม การเก็บข้อมูลการทำงานของโปรแกรม สามารถที่จะดูข้อมูลย้อนหลังได้ สามารถบันทึกเวลาที่เกิดเหตุการณ์ใดเหตุการณ์หนึ่งใน application ก็ได้
<?xml version="1.0" encoding="UTF-8"?>
<log4php:configuration xmlns:log4php="http://logging.apache.org/log4php/">
<appender name="appenderName" class="LoggerAppenderDailyFile"> <!-- 1 -->
<param name="datePattern" value="Y-m-d" /> <!-- 2 -->
<param name="file" value="messageLog-%s.txt" /> <!-- 3 -->
<layout class="LoggerLayoutPattern"> <!-- 4 -->
<param name="conversionPattern"
value="%d{Y-m-d H:i:s.u} %F %c %-5p %m%n" /> <!-- 5 -->
</layout>
</appender>
<root>
<level value="WARN" /> <!-- 6 -->
<appender_ref ref="appenderName" /> <!-- 7 -->
</root>
</log4php:configuration>
%d{ y-m-d H:i:s.u} ปี เดือน วัน ชม. นาที วินาที ตามลำดับ
%F php file ที่สร้างข้อความ
%c ชื่อของ log ที่ได้กำหนดไว้ตอนสร้าง log ภายในชุดคำสั่งของ php
%-5p ระดับของข้อความ
%m ข้อความ
%n line break
<?php
//include log4php เข้ามา
include('log4php/Logger.php');
// กำหนด configuration ที่ได้สร้างไว้
Logger::configure('log4php.xml');
// สร้าง logger เพื่อไว้เขียนข้อความ
$log = Logger::getLogger('loggerName');
//เริ่มทำการเขียนลง text file
$log->trace("This is trace message."); //ไม่ถูกเขียนลง text file เนื่องจาก TRACE < WARN
$log->debug("This is debug message."); //ไม่ถูกเขียนลง text file เนื่องจาก DEBUG < WARN
$log->info("This is info message."); //ไม่ถูกเขียนลง text file เนื่องจาก INFO < WARN
$log->warn("This is warn message."); //ไม่ถูกเขียนลง text file เนื่องจาก WARN >= WARN
$log->error("This is error message."); //ไม่ถูกเขียนลง text file เนื่องจาก ERROR >= WARN
$log->fatal("This is fatal message."); //ไม่ถูกเขียนลง text file เนื่องจาก FATAL >= WARN
?>
messageLog-2011-09-14.txt จะถูกสร้างขึ้นมาโดยอัตโนมัต และภายใน text file นี้จะมีข้อความดังนี้
2011-09-14 20:14:55.645 C:\AppServ\www\log4php\testLog.php loggerName WARN This is warn message.
2011-09-14 20:14:55.646 C:\AppServ\www\log4php\testLog.php loggerName ERROR This is error message.
2011-09-14 20:14:55.646 C:\AppServ\www\log4php\testLog.php loggerName FATAL This is fatal message.
อ้างอิงจาก http://logging.apache.org/log4php/