Laravel Log :: info下一行字符不起作用

时间:2016-03-21 10:24:49

标签: php laravel logging

我正在使用laravel并尝试记录消息。

Log::info('[ProductViewModel/validate] First line message. \r\nSecond line message.');

为什么\r\n无效,只显示如下输出。

[2016-03-21 10:17:43] local.INFO: [ProductViewModel/validate] First line message. \r\nSecond line message.

4 个答案:

答案 0 :(得分:6)

您可以使用PHP_EOL作为换行符

Log::info('[ProductViewModel/validate] First line message'. PHP_EOL .'Second line message');

答案 1 :(得分:1)

我想您应该在格式化程序选项中允许它,例如:

$logger = new Monolog\Logger('MyLoggerName');
$formatter = new Monolog\Formatter\LineFormatter(
    null, // Format of message in log, default [%datetime%] %channel%.%level_name%: %message% %context% %extra%\n
    null, // Datetime format
    true, // allowInlineLineBreaks option, default false
    true  // ignoreEmptyContextAndExtra option, default false
);
$debugHandler = new Monolog\Handler\StreamHandler('/tmp/my_debug.log', Monolog\Logger::DEBUG);
$debugHandler->setFormatter($formatter);
$logger->pushHandler($debugHandler);

来源:https://stepanoff.org/wordpress/2017/11/13/allow-inline-line-breaks-for-monolog/

答案 2 :(得分:0)

在日志消息周围使用双引号而不是单引号,如下所示:

Log::info("[ProductViewModel/validate] First line message. \r\nSecond line message.");

标签也适用于这种方法(使用\ t)。

答案 3 :(得分:0)

 $data=['user id'=>'id','user verified email'=> 'email];
            $val=json_encode($data);
            Log::channel('User_Activity')->info($val.PHP_EOL );

在JSON文件中快乐编码