php-fpm stdout,使用Laravel 5.6和php-fpm登录到stdout / stderr

我希望我的laravel应用程序能够运行有效的12因素应用程序.现在我在php-fpm下努力让他们在stdout(stderr对我来说也很好)得到他们的日志. php版本是7.2.1,laravel版本是5.6.3.

我配置laravel使用单个驱动程序写入stdout:

return [

'default' => env('LOG_CHANNEL', 'stack'),

'channels' => [

'stack' => [

'driver' => 'stack',

'channels' => ['single'],

],

'single' => [

'driver' => 'single',

'path' => 'php://stdout',

'tap' => [App\Logging\UseJsonFormatter::class],

'level' => 'debug',

],

];

这适用于测试服务器,但fpm前缀有日期和警告:[19-Feb-2018 09:43:41]警告:[pool www] child 12表示stdout:每个~1000个字符.

这个问题似乎被称为issue 71880 (prefix)和issue 69031 (truncation).一个Pull Request去年6月/ 11月的最后一次行动.有没有人有一个没有块或截断日志消息的解决方法(我正在记录json对象,我喜欢它们完成)?

如果有人有兴趣,这是UseJsonFormatter.php:

namespace App\Logging;

use Monolog\Formatter\JsonFormatter;

class UseJsonFormatter

{

/**

* Customize the given Monolog instance.

*

* @param \Monolog\Logger $monolog

* @return void

*/

public function __invoke($monolog)

{

$jsonFormatter = new JsonFormatter();

foreach ($monolog->getHandlers() as $handler) {

$handler->setFormatter($jsonFormatter);

}

}

}

解决方法:

这将在December 6th 2018发布PHP 7.3时修复.

该池的config指令是decorate_workers_output = no,如pull request中所述.

标签:php,laravel,logging,laravel-5-6

来源: https://codeday.me/bug/20190701/1347648.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值