首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Mac上将error_log作为文字"\n“字符串输出换行符

问在Mac上将error_log作为文字"\n“字符串输出换行符
EN

Stack Overflow用户
提问于 2011-11-29 23:16:53
回答 2查看 10.5K关注 0票数 18

我正在编写一些使用error_log()进行调试的代码。问题是,由于某种原因,输出中的所有换行符都显示为文字\n字符串,因此没有实际的换行(因此几乎不可能理解复杂数组)。

我尝试在var_export函数和print_r函数中同时使用error_log,结果都是一样的:一个带有\n的文本块散布在各处。我甚至试着做str_replace \n to PHP_EOL,但没有成功。我做错了什么?

澄清:\n字符串出现在控制台错误日志查看器、TextEdit和终端中。

编辑

只是想事先注意一下,是的,我知道您需要双引号\n字符串才能显示为换行。但是,我正在处理来自print_r或var_export的输出(用于检查数组),因此这对我没有太大帮助(我认为?)。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-11-30 00:00:41

显然,这个问题与您的操作系统无关。参见这个问题:PHP error log and newline chars

...you应该能够将Debian上的php.ini中的error_log指令更改为指向文件。如果这是未定义的,它将通过不支持多行的syslog。

。

票数 7
EN

Stack Overflow用户

发布于 2012-06-18 07:13:40

作为另一种选择,您可以通过sed处理/替换'\n‘,这样它们就像控制台中的新行一样显示:

Linux

代码语言:javascript
复制
$ tail -f error_log | sed "s/\\\n/\\n/g"

Mac

代码语言:javascript
复制
# WARNING - don't just copy+paste (see comment below)
$ tail -f error_log | sed "s/\\\n/^M^L/g"

注意:在Mac中,一行的末尾是CRLF (载波返回行源),而在LINUX系统中只有LF (Line )

注2:在Mac中输出终端中的^M,按Control+V Control+M,输出^L,按Control+V Control+L

票数 36
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8319123

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档