PHP日志需主动配置或调用,最轻量方式是error_log()函数写入指定文件;也可通过php.ini全局配置记录错误;推荐封装log_msg()函数统一格式;大型项目宜用Monolog等专业库。
PHP 文件本身不会自动生成日志,必须主动调用日志记录函数或配置日志机制。最常用、最轻量的方式是使用 error_log() 函数,它能快速把信息写入系统日志、Web 服务器错误日志,或指定文件。
这是开发中最灵活的方法:直接指定日志路径,无需额外扩展。
error_log("用户登录失败", 3, "/var/log/myapp.log");
error_log(date('Y-m-d H:i:s') . " [INFO] 请求完成\n", 3, "/var/log/app.log");
适合统一管理所有错误和警告,不需每处都写日志语句。
php.ini 中设置:error_log = /var/log/php_errors.log
error_reporting = E_ALL 和 log_errors = On
避免重复写路径和格式,提升可维护性。
function log_msg($msg, $level = 'INFO') {
$time = date('Y-m-d H:i:s');
$log_line = "[$time] [$level] $msg" . PHP_EOL;
error_log($log_line, 3, '/var/log/myapp.log');
}log_msg("用户ID=123访问了订单页", "ACCESS");
当项目变大、需要滚动日志、多通道(文件+邮件+Slack)、结构化输出时,建议引入。
composer require monolog/monolog
不复杂但容易忽略:日志路径要绝对路径,权限要检查,生产环境别用 var_dump() 或 print_r() 替代日志,它们不会持久保存,也难排查。