|
|
6 месяцев назад | |
|---|---|---|
| .. | ||
| README.md | 6 месяцев назад | |
| SizeRotatingDailyHandler.php | 7 месяцев назад | |
| SizeRotatingDailyLogger.php | 7 месяцев назад | |
laravel-2025-05-26.loglaravel-2025-05-26-1.log、laravel-2025-05-26-2.log 等在 .env 文件中设置:
# 使用自定义日志驱动
LOG_CHANNEL=size_rotating_daily
# 最大文件大小(支持 K、M、G 单位)
LOG_MAX_FILE_SIZE=100M
# 保留天数
LOG_DAILY_DAYS=14
# 日志级别
LOG_LEVEL=debug
| 配置项 | 说明 | 默认值 | 示例 |
|---|---|---|---|
max_file_size |
单个文件最大大小 | 100M | 50M, 1G, 512K |
days |
保留天数(0表示不限制) | 14 | 7, 30, 0 |
path |
日志文件路径 | storage/logs/laravel.log | - |
level |
日志级别 | debug | info, warning, error |
permission |
文件权限 | 0777 | 0644, 0755 |
locking |
是否使用文件锁 | false | true, false |
K 或 KB:千字节M 或 MB:兆字节G 或 GB:千兆字节示例:
1024 = 1024 字节10K = 10 千字节50M = 50 兆字节2G = 2 千兆字节laravel-2025-05-26.log - 当天的主日志文件laravel-2025-05-26-1.log - 第一个分割文件laravel-2025-05-26-2.log - 第二个分割文件laravel-2025-05-26-3.log - 第三个分割文件-1 后缀的文件-1 文件也超过限制时,创建 -2 后缀的文件use Illuminate\Support\Facades\Log;
// 记录日志
Log::info('这是一条信息日志');
Log::error('这是一条错误日志');
Log::debug('这是一条调试日志');
// 在配置文件中定义多个通道
'channels' => [
'api' => [
'driver' => 'size_rotating_daily',
'path' => storage_path('logs/api.log'),
'max_file_size' => '50M',
'days' => 7,
],
'error' => [
'driver' => 'size_rotating_daily',
'path' => storage_path('logs/error.log'),
'max_file_size' => '200M',
'days' => 30,
'level' => 'error',
],
],
// 使用特定通道
Log::channel('api')->info('API 请求日志');
Log::channel('error')->error('系统错误日志');
UCore 提供了自动清理过期日志文件的功能:
# 使用配置文件中的保留天数(默认读取 size_rotating_daily.days 配置)
php artisan ucore:clean-size-rotating-logs
# 自定义保留天数
php artisan ucore:clean-size-rotating-logs --days=3
# 试运行(仅显示将要删除的文件)
php artisan ucore:clean-size-rotating-logs --dry-run
系统会自动在每天凌晨3点执行清理任务,使用 size_rotating_daily.days 配置的保留天数。
locking 选项确保 Laravel 有权限写入日志目录:
chmod -R 755 storage/logs
chown -R www-data:www-data storage/logs
定期检查磁盘空间,确保有足够空间存储日志文件。
可以通过以下命令测试日志配置:
php artisan tinker
Log::info('测试日志消息');
| 特性 | 标准 daily | size_rotating_daily |
|---|---|---|
| 按日期分割 | ✅ | ✅ |
| 按大小分割 | ❌ | ✅ |
| 自动备份 | ❌ | ✅ |
| 文件大小限制 | ❌ | ✅ |
| 保留天数 | ✅ | ✅ |
| 自动清理 | ❌ | ✅ |
| 性能 | 高 | 中等 |
max_file_size 参数size_rotating_daily 子目录中进行管理