>[danger] 该组件为系统组件,在组件树中只可命名为 log ,不可修改为其他名称。 ## 日志 日志组件通常使用在开发环境中用来 debug,生产环境中监控程序异常与运行状态。 | 类 | 调用 | | --- | --- | | Mix\Log\Logger | app()->log | >[success] 日志组件实现了 Psr\Log\LoggerInterface ,符合 PSR 标准。 ## 依赖注入配置 [>> 到 GitHub 查看默认配置 <<](https://github.com/mix-php/mix/blob/master/applications/http/config/main_coroutine.php#L90) `rotate` 全部常量明细: - Mix\Log\FileHandler::ROTATE_HOUR - Mix\Log\FileHandler::ROTATE_DAY - Mix\Log\FileHandler::ROTATE_WEEKLY ## 日志类型 全部日志类型如下: ``` 'emergency', 'alert', 'critical', 'error', 'warning', 'notice', 'info', 'debug' ``` >[info] 每个类型都对应一个 Log 类的同名方法。 使用方法: ``` $message = 'UserId: {userId}, Name: {name}'; $context = ['userId' => 1008, 'name' => 'your name']; app()->log->info($message, $context); // 将生成 info_轮转时间_[自增编号].log 文件 ``` ## 自定义日志 可以自定义输出日志到某个文件: ~~~ $message = 'UserId: {userId}, Name: {name}'; $context = ['userId' => 1008, 'name' => 'your name']; app()->log->log('test', $message, $context); // 将生成 test_轮转时间_[自增编号].log 文件 ~~~ ## 日志文件 生成的日志文件默认在 `runtime/logs` 目录,也可以使用绝对路径定义为其他目录,日志文件格式如下: ~~~txt 文件前缀_轮转时间_[自增编号].log ~~~ ## 日志记录级别 配置中的 `level` 字段设定了写入日志的级别,没有定义在里面的日志类型,不管是被动调用还是主动掉用,都不会写入到日志文件。 >[info] 日志记录级别对用户定义的新类型无效,比如上面定义的 test 类型。 ~~~ 'level' => ['error', 'info', 'debug'], ~~~ 例如:只记录错误日志,忽略其他类型的日志,配置如下: ~~~ 'level' => ['error'], ~~~