docker 中 php 项目的日志记录和信息收集至关重要。使用 psr-3 标准和 monolog 库:安装 monolog。在 config/logging.php 中配置 monolog。使用 logger 方法记录日志。在 docker-compose.yml 中使用 logging 部分收集 docker 日志。
Docker 日志记录和信息收集 для 部署 PHP 项目
在 Docker 中部署 PHP 项目时,日志记录和信息收集对于故障排除、调试和监控至关重要。本文将指导您使用 PHP 的 PSR-3 标准和流行的日志记录库 Monolog 来实现有效的日志记录。
1. 安装 Monolog
使用 Composer 安装 Monolog:
composer require monolog/monolog
2. 配置 Monolog
在您的项目根目录中创建一个 config/logging.php 文件,用于配置 Monolog:
立即学习“PHP免费学习笔记(深入)”;
<?php
use MonologLogger;
use MonologHandlerStreamHandler;
// 创建一个日志实例
$logger = new Logger('my-php-project');
// 将日志写入文件
$handler = new StreamHandler('var/logs/application.log');
$logger->pushHandler($handler);
3. 使用 Monolog 记录
使用 记录器 方法记录日志:
$logger->info('This is an info message');
$logger->error('This is an error message');
4. Docker 日志收集
为了在 Docker 中收集日志,请使用docker-compose.yml 文件中的logging 部分。该部分指定了 Docker 日志驱动程序和日志文件路径:
logging:
driver: "json-file"
options:
max-size: "10m"
max-file: "5"
实战案例
下面的代码示例展示了如何在实际 PHP 项目中使用 Monolog:
<?php
use MonologLogger;
use MonologHandlerStreamHandler;
// 创建一个新的控制器类
class MyController
{
// 创建一个日志实例
private $logger;
public function __construct()
{
$this->logger = new Logger('my-controller');
$this->logger->pushHandler(new StreamHandler('var/logs/controller.log'));
}
// 创建一个方法来记录日志
public function index()
{
$this->logger->info('访问了getIndex方法');
}
}
结论
通过使用 PSR-3 标准和 Monolog,您可以轻松地在 Docker 中实现有效的 PHP 项目日志记录和信息收集。这对于故障排除、调试和监控至关重要。