Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/259.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 对日志文件使用Sed和grep_Php_Linux_Logging_Command Line_Terminal - Fatal编程技术网

Php 对日志文件使用Sed和grep

Php 对日志文件使用Sed和grep,php,linux,logging,command-line,terminal,Php,Linux,Logging,Command Line,Terminal,我试图让php错误日志看起来很好 每当我执行error\u log($ex->getraceastring())但它打印了\n所以我找出了可能性,结果是我应该从终端本身执行该操作 我也是 tail -f /var/log/apache2/error.log | sed 's/\\n/\n/g' 但是以前我做日志的时候 tail -f /var/log/apache2/error.log | grep production 对于包含关键字production的日志 但是我想要他们两个我该怎么

我试图让php错误日志看起来很好 每当我执行error\u log($ex->getraceastring())但它打印了\n所以我找出了可能性,结果是我应该从终端本身执行该操作

我也是

 tail -f /var/log/apache2/error.log | sed 's/\\n/\n/g'
但是以前我做日志的时候

tail -f /var/log/apache2/error.log | grep production
对于包含关键字production的日志

但是我想要他们两个我该怎么做?这样我的两个标准都起作用了

我试过了

tail -f /var/log/apache2/error.log | grep production | sed 's/\\n/\n/g'
tail -f /var/log/apache2/error.log | sed 's/\\n/\n/g' | grep production 
(tail -f /var/log/apache2/error.log | grep production) | sed 's/\\n/\n/g'
(tail -f /var/log/apache2/error.log | sed 's/\\n/\n/g') | grep production 

但这些都不起作用。我应该怎么做?

使用/…/将搜索字符串添加到sed语句中,因此:

tail -f /var/log/apache2/error.log | sed -n '/production/s/\\n/\n/gp'

使用/…/将搜索字符串添加到sed语句中,因此:

tail -f /var/log/apache2/error.log | sed -n '/production/s/\\n/\n/gp'

这与
tail-f/var/log/apache2/error.log | grep production | sed的/\\n/\n/g'
有何不同?它不起作用,我得到的日志包含了不包含ProductionPologies的行。你需要-n。我已经修改了答案。非常感谢,现在它工作了hi@RamanSailopal,很抱歉,您的解决方案在{“时间”:“2021-01-28 19:26:07.402946”,“函数”:“[-:error]”,“进程”:“[pid25953]”,“消息”:“PHP警告:get_headers():无法打开流:php_network_getaddress:getaddrinfo失败:名称或服务在第158行的/var/www/production/file.php中未知,“主机”:“production.google.org”}这与
tail-f/var/log/apache2/error.log | grep production | sed's/\\n/\n/g'
有什么不同,我得到的日志中包含的行不包含ProductionPologies。你需要-n。我已经修改了答案。非常感谢,现在它工作了hi@RamanSailopal,很抱歉,您的解决方案在{“时间”:“2021-01-28 19:26:07.402946”,“函数”:“[-:error]”,“进程”:“[pid25953]”,“消息”:“PHP警告:get_headers():无法打开流:php\u network\u getaddress:getaddrinfo失败:第158行/var/www/production/file.php中的名称或服务未知,“主机”:“production.google.org”}