sensorario / develog
一个PHP日志库
v2.0.2
2022-10-03 09:33 UTC
Requires
- psr/log: 3.0.0
Requires (Dev)
- phpunit/phpunit: 10.0.x-dev
This package is auto-updated.
Last update: 2024-08-30 01:17:34 UTC
README
这些是在开发中使用的Logger家族。有时用于特定文件的日志记录。有时用于格式化JSON响应。这是一个独立的库,不需要除了Psr\Log\LoggerInterface之外的其他供应商。
用法
树
从版本1.3.0开始的树
src/
└── Sensorario
└── Develog
├── Logger
│ ├── AbstractLogger.php
│ ├── HttpLogger.php
│ ├── LoggerInterface.php
│ ├── NoDateLogger.php
│ ├── NormaLogger.php
│ ├── RawLogger.php
│ └── SymfonyLogger.php
├── Logger.php
├── PsrLogger.php
├── Request
│ ├── HttpRequestObject.php
│ └── RequestInterface.php
├── Request.php
├── Response.php
└── SymfonyLoggerInterface.php
仅记录不带日期和级别的日志
use Sensorario\Develog\Logger\RawLogger;
$logger = new RawLogger();
$logger->setLogFile('/path/to/file');
$logger->write('log this content …');
配置日志大小
use Sensorario\Develog\Logger\RawLogger;
$logger = new RawLogger();
$logger->setLogFile('/path/to/file');
$logger->setSizeLimitInBytes(2000000);
不带日期的日志
use Sensorario\Develog\Logger\NoDateLogger;
$logger = new NoDateLogger();
$logger->setLogFile('/path/to/file');
$logger->write('log this content …');
将日志记录到文件
use Sensorario\Develog\Logger\NormaLogger;
$logger = new NormaLogger();
$logger->setLogFile('/path/to/file');
$logger->write('log this content …');
$logger->logClass($object);
$obj = new \Bar\Foo();
$logger->logClassWithMessage($obj, 'log this'); // log this \Bar\Foo()
处理HTTP请求
use Sensorario\Develog\Logger\HttpLogger;
use Sensorario\Develog\Request\HttpRequestObject;
$logger = new HttpLogger();
$logger->setLogFile($this->getParameter('kernel.root_dir').'/../var/logs/foo.log');
$logger->logRequest(HttpRequestObject::handleRequest());
处理Symfony请求
use Sensorario\Develog\Logger\SymfonyLogger;
use Sensorario\Develog\Request\HttpRequestObject;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
public function indexAction(Request $request)
{
$logger = new SymfonyLogger();
$logger->setLogFile($this->getParameter('kernel.root_dir').'/../var/logs/foo.log');
$logger->logSymfonyRequest($request);
$response = new Response('foo');
$logger->logSymfonyRequest($response);
}
创建Symfony服务
这不是强制性的,但如果你愿意,你还可以在使用Symfony应用程序时配置这些服务在services.yml文件中。因为我总是只用develo进行开发,所以我从未将其添加为服务:我仍然更喜欢从该文件复制和粘贴所需的代码。也许将来我会创建一个提供一些服务的Bundle。
services:
logger.normal:
class: Sensorario\Develog\Logger\NormaLogger
logger.symfony
class: Sensorario\Develog\Logger\SymfonyLogger
logger.http
class: Sensorario\Develog\Logger\HttpLogger