错误处理:
1. error_reporting(): 设置 PHP 的错误报告级别。
error_reporting(E_ALL);
2. ini_set(): 通过修改配置设置动态地改变错误报告级别。
ini_set('error_reporting', E_ALL);
3. set_error_handler(): 设置自定义的错误处理函数。
function customErrorHandler($errno, $errstr, $errfile, $errline) {
echo "Error: [$errno] $errstr\n";
}
set_error_handler("customErrorHandler");
4. trigger_error(): 手动触发用户级别的错误。
trigger_error("This is a custom error message", E_USER_ERROR);
5. try, catch, throw: 使用异常处理来捕获和处理异常。
try {
// 代码块,可能引发异常
throw new Exception("This is an exception message");
} catch (Exception $e) {
// 处理异常
echo "Caught exception: " . $e->getMessage();
}
日志记录:
1. error_log(): 将错误消息或其他信息记录到服务器的错误日志或指定的文件。
$message = "This is an error message";
error_log($message, 3, "/path/to/error.log");
第二个参数 3 表示将错误消息追加到指定的文件。
2. syslog(): 将消息发送到系统日志。
$message = "This is a syslog message";
syslog(LOG_INFO, $message);
3. Monolog 库: Monolog 是一个流行的 PHP 日志库,提供了强大的日志记录功能。
use Monolog\Logger;
use Monolog\Handler\StreamHandler;
// 创建日志记录器
$log = new Logger('name');
// 添加一个处理程序,将日志写入文件
$log->pushHandler(new StreamHandler('/path/to/logfile.log', Logger::WARNING));
// 记录一条日志消息
$log->warning('This is a warning message');
4. PSR-3 Logger Interface: PSR-3 是 PHP-FIG(PHP Framework Interop Group)定义的日志记录器接口标准,许多日志库都实现了这个标准。
use Psr\Log\LoggerInterface;
use Psr\Log\LogLevel;
// 自定义日志类实现 LoggerInterface
class MyLogger implements LoggerInterface {
// 实现 PSR-3 的方法
public function log($level, $message, array $context = array()) {
// 实现日志记录逻辑
echo "[$level] $message\n";
}
}
// 使用自定义日志类
$logger = new MyLogger();
$logger->log(LogLevel::ERROR, "This is an error message");
这些方法提供了一系列灵活的手段,可以根据具体的需求来处理错误和记录日志。在实际应用中,选择适合项目的方法和工具,以确保系统的可维护性和调试性。
转载请注明出处:http://www.pingtaimeng.com/article/detail/3642/PHP