如何在 php 中创建自定义日志记录系统?使用 monolog 库或创建自己的日志记录器。添加一个处理程序以将日志条目写入文件或数据库。使用 info()、error() 等方法记录日志条目。使用中间件在请求开始时记录特定端点的请求。使用 graylog 或 elasticsearch 等服务监控日志。
使用 PHP 构建自定义日志记录系统
背景
日志记录是任何软件应用程序中的一个重要部分。它允许您记录事件、错误和调试信息,以便在发生问题时进行故障排除和调试。
创建一个自定义日志记录器
在 PHP 中,您可以使用 Monolog 等第三方库或创建自己的日志记录器。以下是如何使用 Monolog 创建一个自定义日志记录器:
// 使用 Composer 安装 Monolog
<a style='color:#f60; text-decoration:underline;' href="https://www.php.cn/zt/15906.html" target="_blank">composer</a> require monolog/monolog
// 创建一个日志记录器
use MonologLogger;
use MonologHandlerStreamHandler;
$logger = new Logger('name-of-my-logger');
// 添加一个处理程序以写入文件
$logger->pushHandler(new StreamHandler('my-log.log', Logger::DEBUG));
记录
可以使用 info(), warning(), error(), critical() 等方法记录日志条目:
$logger->info('This is an info message');
实战案例
假设您正在开发一个 Web 应用程序,您希望记录对 /api/v1/users 端点的请求。可以使用 Middleware 在请求开始时记录日志条目:
// 使用 Slim Framework Middleware
use SlimMiddlewareMiddlewareInterface;
use PsrHttpMessageServerRequestInterface;
use PsrHttpMessageResponseInterface;
class LogRequests implements MiddlewareInterface
{
public function process(ServerRequestInterface $request, ResponseInterface $response, callable $next)
{
$logger->info('Request received', ['method' => $request->getMethod(), 'uri' => $request->getUri()->getPath()]);
return $next($request, $response);
}
}
将此中间件添加到应用程序中,您将在每次请求 /api/v1/users 时记录一条日志条目。
监控日志
监控日志非常重要。可以使用诸如 Graylog 或 ElasticSearch 之类的服务。这些服务允许您集中存储和分析日志,以查找模式和异常。