Log 类別

Log 类別能让你寫訊息到紀錄档案。

配置

紀錄档案被放置在 config.php 的 'log_path' 屬性所指定的文件夾。你也可以在那裡設定 'log_threshold' 與 'log_date_format' 參数。
这些設定也可以藉由使用 Config 类別 动態地改變。

參数 类型 預設 描述
log_threshold 常数
Fuel::L_WARNING
可以是以下任何一種:Fuel::L_NONE、Fuel::L_ERROR、Fuel::L_WARNING、Fuel::L_DEBUG、Fuel::L_INFO 或 Fuel::L_ALL
log_file 字串
null
紀錄档案的名稱。如果沒給,它会被產生为 "./YYYY/MM/DD.log" 的形式,每天一个紀錄档案。
log_path 字串
APPPATH.'logs/'
要放置紀錄档案的地方(文件夾必須为可寫入)
log_date_format 字串
'Y-m-d H:i:s'
紀錄條目的時間格式。此格式必須遵循 PHP 日期格式規則。詳見 http://www.php.net/date

用法

有四種預定義的易用函式:

Log::info()
Log::debug()
Log::warning()
Log::error()

它們都使用主要的 Log::write() 函式,此函式需要 $level 參数做为第一个變数。

一些範例:
// 以 "Info" 等級寫入一个紀錄條目到紀錄档案
$var = 1;
Log::info('Application started (with $var = '.$var.')', 'my_init_function()');

// 儲存 $var 新的值到紀錄档案而不使用 $method 參数
$var = 5;
Log::debug('$var is now '.$var);

// 发送一个警告紀錄條目
if($var !== 1) Log::warning('Although $var has been changed, we will keep going.');

// 发送一个错误紀錄條目
if($var !== 1) Log::error('We cannot keep going, $var has been changed! :o');

// 最後,建立一个自訂 $level 的紀錄條目
Log::write('Link', 'More info on http://fuelphp.com/');
輸出

所有紀錄档案被放置在定義的文件夾中(見上文)。
如果你已经配置了一个档案名稱,所有紀錄会被寫到这个档案。你需要設置你自己的紀錄輪換機制 (例如 Linux logrotate)來避免档案變得非常大。如果你還沒配置一个档案名稱, 紀錄档案会在透過目前其次是(例如 "2013/06")命名的文件夾中, 帶著日期做为档案名稱(例如 "15.php")揭露。
指向我們的範例紀錄档案的完整路徑会是:APPPATH.'logs/2011/06/15.php'

上面的範例将会寫入以下的程式码到紀錄档案:

<?php defined('COREPATH') or exit('No direct script access allowed'); ?>

Info - 2011-01-03 18:44:45 --> my_init_function() - Application started (with $var = 1)
Debug - 2011-01-03 18:44:45 --> $var is now 5
Warning - 2011-01-03 18:44:45 --> Although $var has been changed, we will keep going.
Error - 2011-01-03 18:44:45 --> We cannot keep going, $var has been changed! :o
Link - 2011-01-03 18:44:45 --> More info on http://fuelphp.com/

info($msg, $method = null)

info 方法能让你以 "Info" 的 $level 寫一个紀錄條目。

靜態
參数
參数 預設 描述
$msg 必要 資訊紀錄條目的訊息。
$method
null
關於建立紀錄條目的方法資訊。
回傳 布林
範例
$var = 1;
Log::info('Application started (with $var = '.$var.')', 'my_init_function()');

debug($msg, $method = null)

debug 方法能让你以 "Debug" 的 $level 寫一个紀錄條目。

靜態
參数
參数 預設 描述
$msg 必要 資訊紀錄條目的訊息。
$method
null
關於建立紀錄條目的方法資訊。
回傳 布林
範例
$var = 5;
Log::debug('$var is now '.$var);

warning($msg, $method = null)

warning 方法能让你以 "Warning" 的 $level 寫一个紀錄條目。

靜態
參数
參数 預設 描述
$msg 必要 資訊紀錄條目的訊息。
$method
null
關於建立紀錄條目的方法資訊。
回傳 布林
範例
// 我們发送一个警告紀錄條目
if($var !== 1) Log::warning('Although $var has been changed, we will keep going.');

error($msg, $method = null)

error 方法能让你以 "Error" 的 $level 寫一个紀錄條目。

靜態
參数
參数 預設 描述
$msg 必要 資訊紀錄條目的訊息。
$method
null
關於建立紀錄條目的方法資訊。
回傳 布林
範例
// 我們发送一个错误紀錄條目
if($var !== 1) Log::error('We cannot keep going, $var has been changed! :o');

write($level, $msg, $method = null)

write 方法能让你以自訂的 $level 寫一个紀錄條目。

靜態
參数
參数 預設 描述
$level 必要 自訂的等級。
$msg 必要 資訊紀錄條目的訊息。
$method
null
關於建立紀錄條目的方法資訊。
回傳 布林
範例
// 最後,我們以自訂 $level 建立一个紀錄條目
Log::write('Link', 'More info on http://fuelphp.com/')

程序助手

logger($level, $msg, $method = null)

logger 函式是 Log::write 的別名。

參数
參数 預設 描述
$level 必要 自訂的等級。
$msg 必要 資訊紀錄條目的訊息。
$method
null
關於建立紀錄條目的方法資訊。
回傳
範例
logger(\Fuel::L_INFO, 'My Message', 'SomeMethod');