hyperf 3.1 日志

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


        安装

composer require hyperf/logger

        配置

        在 hyperf-skeleton 项目内默认提供了一些日志配置,默认情况下,日志的配置文件为 config/autoload/logger.php ,可以配置日志位置,格式例如年月日,以及日志等级

        示例如下:

<?php

return [
    'default' => [
        'handler' => [
            'class' => \Monolog\Handler\StreamHandler::class,
            'constructor' => [
                'stream' => BASE_PATH . '/runtime/logs/hyperf.log',
                'level' => \Monolog\Logger::DEBUG,
            ],
        ],
        'formatter' => [
            'class' => \Monolog\Formatter\LineFormatter::class,
            'constructor' => [
                'format' => null,
                'dateFormat' => null,
                'allowInlineLineBreaks' => true,
            ]
        ],
    ],
];


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

<?php
namespace App\Controller;

use Hyperf\Logger\LoggerFactory;

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

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

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

        使用:封装Log类

<?php
namespace App\Controller;

use Hyperf\Logger\LoggerFactory;
use Hyperf\Context\ApplicationContext;


class UserController extends AbstractController
{
    protected $logger;
    public function index()
    {
        $this->logger = ApplicationContext::getContainer()->get(LoggerFactory::class)->get('log', 'default');
        $this->logger->info('hello world');
    }
}

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



冷暖自知一抹茶ck
请先登录后发表评论
  • 最新评论
  • 总共0条评论