我正在使用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.
答案 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文件中快乐编码