分享一个日志生成,分割类库
这是一个基于monolog开发的,可以自动分割日志的类库。日志自动按大小分片保存,超过大小后自动分割,并保留指定天数的日志
A custom logging library for FssPHP Framework based on Monolog with file size rotation support.
简单修改后,就可以适配webman。
仓库地址: github.com/xuey490/log
安装
composer require xuey490/log
初始化使用
use Framework\Log\LoggerService;
$config = [
'log_channel' => 'my-app', //暂时没啥用,可以看做应用标记
'log_path' => __DIR__ . '/storage/logs',//日志存放路径
'log_size' => 10 * 1024 * 1024, // 10MB 日志文件大小超过大小,自动分割
'log_keep_days' => 15, //日志保留天数
'log_date_format' =>'Y-m-d H:i:s', //给处理器设置自定义格式化器
];
$logger = new LoggerService($config);
$logger->info("Log system initialized successfully!");
日志片段 /storage/logs/app.log
[2025-12-03T07:29:22.869860+08:00] app.INFO: [Event Expired] Listener files changed or cache expired. Rescanning... [] []
[2025-12-03T07:29:22.926525+08:00] app.INFO: [Event] Scanned and found 2 subscribers. [] []
[2025-12-03T07:29:24.227385+08:00] app.INFO: [Route Loaded]Loaded 128 routes (manual: 5, annotated: 123) [] []
[2025-12-03T07:29:30.594206+08:00] app.INFO: [Event Scan] Subscribers loaded from cache (fingerprint match). [] []
[2025-12-03T07:29:30.606746+08:00] app.INFO: [Route Loaded]Loaded 128 routes (manual: 5, annotated: 123) [] []
[2025-12-03T07:29:40.230684+08:00] app.INFO: [Event Scan] Subscribers loaded from cache (fingerprint match). [] []
[2025-12-03T07:29:40.242940+08:00] app.INFO: [Route Loaded]Loaded 128 routes (manual: 5, annotated: 123) [] []
[2025-12-03T07:29:42.975919+08:00] app.INFO: [Request processed] {"method":"GET","path":"/blog","status":200,"duration":"2728.64ms","ip":"::1"} []
SQL debug log
[2025-12-03T07:44:02.805026+08:00] app.DEBUG: [ThinkORM Info] {"sql":"CONNECT:[ UseTime:0.018970s ] mysql:host=127.0.0.1;port=3306;dbname=oa;charset=utf8mb4","time":"1,764,719,042.804996s","explain":[]} []
[2025-12-03T07:44:02.814690+08:00] app.DEBUG: [ThinkORM Info] {"sql":"SHOW FULL COLUMNS FROM `oa_custom`","time":"0.009247s","explain":[]} []
[2025-12-03T07:44:02.833638+08:00] app.DEBUG: [ThinkORM Info] {"sql":"SELECT * FROM `oa_custom` WHERE `status` = 1 ORDER BY id desc","time":"0.000428s","explain":[]} []
[2025-12-03T07:44:02.944503+08:00] app.DEBUG: [ThinkORM Info] {"sql":"SELECT COUNT(*) AS think_count FROM `oa_custom` WHERE `status` = 1","time":"0.022348s","explain":[]} []
[2025-12-03T07:44:02.945115+08:00] app.DEBUG: [ThinkORM Info] {"sql":"SELECT * FROM `oa_custom` WHERE `status` = 1 LIMIT 0,3","time":"0.000349s","explain":[]} []
关于 LearnKu
推荐文章: