hyperf:日志配置
一,配置日志
在config/autoload/logger.php中增加一项对日志的配置:
'daily' => [
'handler' => [
'class' => Monolog\Handler\RotatingFileHandler::class,
'constructor' => [
'filename' => BASE_PATH . '/runtime/logs/daily.log',
'level' => Monolog\Logger::INFO,
],
],
'formatter' => [
'class' => Monolog\Formatter\LineFormatter::class,
'constructor' => [
'format' => null,
'dateFormat' => null,
'allowInlineLineBreaks' => true,
],
],
],
二,写日志的代码:
<?php
declare(strict_types=1);
namespace App\Controller;
use Hyperf\HttpServer\Contract\RequestInterface;
use Hyperf\HttpServer\Contract\ResponseInterface;
use Psr\Http\Message\ResponseInterface as Psr7ResponseInterface;
use Hyperf\Logger\LoggerFactory;
use Psr\Log\LoggerInterface;
class ImageController
{
protected LoggerInterface $logger;
public function __construct(LoggerFactory $loggerFactory) {
// 第一个参数对应日志的 name, 第二个参数对应 config/autoload/logger.php 内的 key
$this->logger = $loggerFactory->get('log','daily');
}
public function imagedetail(RequestInterface $request, ResponseInterface $response): Psr7ResponseInterface {
//写日志
$this->logger->info("测试写一条日志",$request->all());
$data = [
'key' => 'value'
];
return $response->json($data);
}
三,测试效果:
[2025-01-24T17:22:56.044325+08:00] log.INFO: 测试写一条日志 [] []
[2025-01-24T17:25:34.924767+08:00] log.INFO: 测试写一条日志 {"id":"1"} []
浙公网安备 33010602011771号