在 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 来处理日志,你可以根据需要自定义日志级别、文件大小限制等设置。