【发布时间】:2023-03-08 20:21:02
【问题描述】:
在我的 laravel 应用程序中,需要格式化一条我需要发送到 slack 的消息。因此,我在config/logging.php 中设置了一个松弛日志通道:
'slack' => [
'driver' => 'slack',
'url' => /*Censored Hook URL*/,
'username' => 'MyApp',
'emoji' => ':gear:',
'level' => 'debug',
],
正如documentation 所见,我可以做一个独白格式化程序,因此我做了以下操作:
namespace App\Logging;
class SlackLogFormatter
{
/**
* Customize the given logger instance.
*
* @param \Illuminate\Log\Logger $logger
* @return void
*/
public function __invoke($logger)
{
foreach ($logger->getHandlers() as $handler) {
$handler->setFormatter(...);
}
}
}
并将其指定为点击我的日志:
'slack' => [
'driver' => 'slack',
'tap' => [App\Logging\SlackLogFormatter::class]
'url' => /*Censored Hook URL*/,
'username' => 'MyApp',
'emoji' => ':gear:',
'level' => 'debug',
],
但是在我的格式化程序中,我在哪里处理日志条目本身?我的意思是:
$handler->setFormatter似乎不是\Illuminate\Log\Logger类的方法。当我需要提供自定义格式时,我找不到需要重写的方法。我的意思是我有调用方法,然后呢?
【问题讨论】:
-
有趣的是我也有同样的问题
标签: php logging laravel-5.6 formatter