文章目录
- hyperf/logger 组件是基于 psr/logger 实现的,默认使用 monolog/monolog 作为驱动,在 hyperf-skeleton 项目内默认提供了一些日志配置,默认使用 MonologHandlerStreamHandler, 由于 Swoole 已经对 fopen, fwrite 等函数进行了协程化处理,所以只要不将 useLocking 参数设置为 true,就是协程安全的。
- composer require hyperf/logger配置文件:config/autoload/logger.php 可以配置日志位置,格式例如年月日,以及日志等级<?phpreturn [ '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(HyperfLoggerLoggerFactoryloggerFactory) { this->logger =loggerFactory->get('log', 'default'); }public function index() { $this->logger->info('hello world'); } }
- <?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'); } }
hyperf/logger 组件是基于 psr/logger 实现的,默认使用 monolog/monolog 作为驱动,在 hyperf-skeleton 项目内默认提供了一些日志配置,默认使用 MonologHandlerStreamHandler, 由于 Swoole 已经对 fopen, fwrite 等函数进行了协程化处理,所以只要不将 useLocking 参数设置为 true,就是协程安全的。
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,
]
],
],
];
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(HyperfLoggerLoggerFactoryloggerFactory)
{
this->logger =loggerFactory->get('log', 'default');
}
public function index()
{
$this->logger->info('hello world');
}
}
<?php
namespace AppController;
use AppExceptionResourceException;
use HyperfHttpServerAnnotationAutoController;
use HyperfHttpServerAnnotationMiddleware;
use HyperfHttpServerAnnotationMiddlewares;
class IndexController extends AbstractController
{
/**
* @var PsrLogLoggerInterface
*/
protected logger;
public function __construct(HyperfLoggerLoggerFactoryloggerFactory)
{
this->logger =loggerFactory->get('log', 'default');
}
public function index()
{
$this->logger->info('hello world');
}
}
<?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');
}
}
<?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');
}
}


