Php 对日志文件使用Sed和grep
我试图让php错误日志看起来很好 每当我执行error\u log($ex->getraceastring())但它打印了\n所以我找出了可能性,结果是我应该从终端本身执行该操作 我也是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的日志 但是我想要他们两个我该怎么
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”}