带你学习hyperf-3.6 日志

3.6 日志

hyperf/logger 组件是基于 psr/logger 实现的,默认使用 monolog/monolog 作为驱动,在 hyperf-skeleton 项目内默认提供了一些日志配置,默认使用 MonologHandlerStreamHandler, 由于 Swoole 已经对 fopen, fwrite 等函数进行了协程化处理,所以只要不将 useLocking 参数设置为 true,就是协程安全的。

安装composer包

composer require hyperf/logger
  • 配置文件:config/autoload/logger.php 可以配置日志位置,格式例如年月日,以及日志等级
<?php

return [
    'default' => [
        'handler' => [
            'class' => MonologHandlerStreamHandler::class,
            'constructor' => [
                'stream' => BASE_PATH . '/runtime/logs/hyperf.log',
                'level' => MonologLogger::DEBUG,
            ],
        ],
        'formatter' => [
            'class' => MonologFormatterLineFormatter::class,
            'constructor' => [
                'format' => null,
                'dateFormat' => null,
                'allowInlineLineBreaks' => true,
            ]
        ],
    ],
];

使用:在构造函数中实例对象

<?php
namespace AppController;

use AppExceptionResourceException;
use HyperfHttpServerAnnotationAutoController;
use HyperfHttpServerAnnotationMiddleware;
use HyperfHttpServerAnnotationMiddlewares;

class IndexController extends AbstractController
{
    /**
     * @var PsrLogLoggerInterface
     */
    protected $logger;

    public function __construct(HyperfLoggerLoggerFactory $loggerFactory)
    {
        $this->logger = $loggerFactory->get('log', 'default');
    }

    public function index()
    {
        $this->logger->info('hello world');
    }
}

使用:封装Log类

<?php
namespace AppController;

use AppExceptionResourceException;
use HyperfHttpServerAnnotationAutoController;
use HyperfHttpServerAnnotationMiddleware;
use HyperfHttpServerAnnotationMiddlewares;

class IndexController extends AbstractController
{
    /**
     * @var PsrLogLoggerInterface
     */
    protected $logger;

    public function index()
    {
        $this->logger = HyperfUtilsApplicationContext::getContainer()
            ->get(HyperfLoggerLoggerFactory::class)
            ->get('log', 'default');
        $this->logger->info('hello world');
    }
}

日志内容:在runtime/logs目录下

zhaohao

大家好,欢迎来到赵豪博客!赵豪,94年生人,PHP程序员一枚,因为对PHP开发有着相对比较浓厚的兴趣,所以现在从事着PHP程序员的工作。 今天再次开通这个博客,这里将记录我的职业生涯的点点滴滴,感谢来访与关注!如果我的博客能给您带来一些帮助那真是一件非常荣幸的事情~

相关推荐

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注

微信扫一扫

微信扫一扫

微信扫一扫,分享到朋友圈

带你学习hyperf-3.6 日志
返回顶部

显示

忘记密码?

显示

显示

获取验证码

Close