PHP/Apache error.log不执行new_line字符,为什么?

eri*_*ork 2 php apache error-handling ubuntu

例如,而不是获得以下内容

post:Array (
  "a" => "b",
  "c" => "d"
)
Run Code Online (Sandbox Code Playgroud)

我得到这个:

post:Array (\n  "a" => "b",\n  "c" => "d"\n)
Run Code Online (Sandbox Code Playgroud)

在调试我的代码时阅读它真的很不舒服.因此,如果您对为何无法正常工作有任何建议,请告诉我.

我在连接到Ubuntu虚拟服务器的Windows7 Putty中运行它,据说它运行默认的Apache/PHP配置.(可能不是,但一如既往,团队中没有人记得改变了什么)

编辑:有人请求写入error.log的代码:

<?php
error_log(print_r(array("a"=>"b","c"=>"d"),1));
?>
Run Code Online (Sandbox Code Playgroud)

查看错误日志的命令是:

sudo tail -f /var/log/apache2/error.log
sudo vim /var/log/apache2/error.log
sudo cat /var/log/apache2/error.log
Run Code Online (Sandbox Code Playgroud)

在所有情况下,都会出现\n未按预期执行的问题.

Kis*_*rma 8

我也面临同样的问题,但花了几分钟后我得到了一个解决方案.

当您tail使用如下

sudo tail -f /var/log/apache2/error.log | sed -e 's/\\n/\n/g'
Run Code Online (Sandbox Code Playgroud)

如果需要,可以创建一个文件,给它一些名称并粘贴上面的命令并将其放在/usr/bin/文件夹中

例如

vi tailme
Run Code Online (Sandbox Code Playgroud)

内容如下:

#!/bin/bash
tail -f /var/log/apache2/error.log | sed -ue 's/\\n/\n/g'
Run Code Online (Sandbox Code Playgroud)

并把它放在/usr/bin/现在你可以tailme用作命令.