Ubuntu PHP日志过滤实用指南
一 先定位日志文件
二 常用过滤命令
less +F /var/log/php-fpm/error.loggrep -i "error" /var/log/php-fpm/error.loggrep -E "error|warning|notice" /var/log/php-fpm/error.loggrep -v "deprecated" /var/log/php-fpm/error.loggrep -E "error|warning|notice" /var/log/php-fpm/error.log | sort | uniq -c | sort -nrgrep -A 5 "SQLSTATE\[42S22\]" /var/log/php-fpm/error.loggrep -B 5 "SQLSTATE\[42S22\]" /var/log/php-fpm/error.loggrep -C 5 "SQLSTATE\[42S22\]" /var/log/php-fpm/error.loggrep "$(date +%Y-%m-%d)" /var/log/php-fpm/error.loggrep "$(date -d yesterday +%Y-%m-%d)" /var/log/php-fpm/error.loggrep -o "SQLSTATE\[[^\]]*\]" /var/log/php-fpm/error.loggrep "pool www" /var/log/php-fpm/error.loggrep -n -E "error|warning" /var/log/php-fpm/error.log | sort | uniq -c | sort -nr | head三 按时间范围与大小快速筛选
find /var/log/php-fpm/ -name "error.log" -mmin -30 -exec tail -n 200 {} \;find /var/log/php-fpm/ -name "error.log" -mmin -360 -exec tail -n 500 {} \;find /var/log/php-fpm/ -name "error.log" -mtime -7 -exec grep -E "error|warning" {} \; | wc -lwc -l 看总行数,再用 sed -n '10000,20000p' file 查看指定区段,避免全量加载。四 减少日志噪声与长期治理
error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATEDdisplay_errors = Off,log_errors = On,并设定 error_log 到专用文件。[www] 段):
log_level 设为 warning 或 error 以减少日志量。/var/log/php-fpm/error.log { daily missingok rotate 7 compress delaycompress notifempty create 0644 root root }sudo systemctl restart apache2sudo systemctl restart php{version}-fpm