在 Ubuntu 下,ThinkPHP 的日志管理可以通過以下幾個方面來實現:
日志目錄和文件大小限制:
ThinkPHP 默認會將日志文件存儲在項目的 runtime/log
目錄下。你可以在項目的配置文件中設置日志文件的最大大小和保留天數。例如,在 config.php
或 config/app.php
文件中添加以下配置:
return [
// ...
'log' => [
'max_file_size' => 2097152, // 單個日志文件最大為 2MB
'keep_days' => 7, // 保留最近 7 天的日志
],
// ...
];
日志級別: ThinkPHP 支持多種日志級別,如:DEBUG、INFO、WARN、ERROR、FATAL 和 EMERGENCY。你可以在配置文件中設置日志級別,以控制輸出的日志信息。例如:
return [
// ...
'log_level' => 'INFO', // 設置日志級別為 INFO
// ...
];
清理過期日志: ThinkPHP 會自動刪除超過保留天數的日志文件。但如果你想手動清理過期日志,可以使用以下命令:
find runtime/log -type f -name "*.log" -mtime +7 -exec rm -f {} \;
這個命令會刪除 runtime/log
目錄下所有超過 7 天的日志文件。
使用日志管理工具: 你可以使用一些第三方日志管理工具來幫助你更好地管理和分析日志文件,例如 Monolog。Monolog 是一個 PHP 日志庫,可以輕松地將日志發送到多個目標,如文件、數據庫、郵件等。要將 Monolog 集成到 ThinkPHP 中,你可以參考以下步驟:
安裝 Monolog:
composer require monolog/monolog
在項目的 bootstrap.php
或 application.php
文件中,引入并配置 Monolog:
use Monolog\Logger;
use Monolog\Handler\RotatingFileHandler;
// 創建一個日志通道
$log = new Logger('name');
// 設置日志級別
$log->setLevel(Logger::INFO);
// 創建一個旋轉文件處理器,最多保留 7 天的日志,每個日志文件最大為 2MB
$handler = new RotatingFileHandler(runtime_path() . '/log/thinkphp.log', 7, Logger::INFO);
// 將處理器添加到日志通道
$log->pushHandler($handler);
// 將日志通道設置為全局默認日志通道
Log::setLogger($log);
這樣,ThinkPHP 就會使用 Monolog 來處理日志,你可以根據需要自定義日志級別、文件大小限制等設置。