vkr/custom-logger-bundle

用于在 Symfony2/3 中将日志记录到非默认文件的包

安装: 265

依赖: 2

建议者: 0

安全: 0

星标: 0

关注者: 2

分支: 0

开放问题: 0

类型:symfony-bundle

1.3.0 2017-05-10 02:06 UTC

This package is auto-updated.

Last update: 2024-09-20 23:09:11 UTC


README

此包是 Monolog 上的一个简单的语法包装器,允许轻松地在多个日志文件之间切换。它除了 Monolog 和 Symfony 之外没有其他依赖项,安装时无需做任何事情。

用法

以下是使用此包的方式。从您的控制器中

$logger = $this->get('vkr_custom_logger.logger');
$logger->setLogger('my_log');
$logger->addInfo('hello world');

使用 Monolog 的 info 和时间戳打印的 'hello world' 消息将输出到文件 /app/logs/my_log.log(对于 Symfony3 为 /var/logs/my_log.log)。如果此文件不存在,将抛出 FileNotFoundException

如果您手动初始化服务,则需要指定不包含尾随斜杠的 app/ 目录的路径

$logger = new VKR\CustomLoggerBundle\Services\CustomLogger('/my/app/dir');

还有一个小的特性是可以获取当前使用的日志文件的路径 - 原因是原始的 Monolog 不允许您这样做。

$logger->setLogger('my_log');
$loggerHandlers = $logger->getHandlers();
$primaryHandler = $loggerHandlers[0];
$filename = $primaryHandler->getUrl();

如果文件权限不足,此包不会抛出任何异常,但 Monolog 会 - 当您尝试执行类似 $logger->addInfo() 的操作时。

API

void CustomLogger::__construct(string $rootDir)

设置到 app/ 目录的路径。

Monolog\Logger CustomLogger::setLogger(string $logName, string $extension = 'log', string $logDir = null)

第一个参数是日志文件名称,不包含路径和扩展名。如果第三个参数未提供,则目录默认为 Symfony2 的 /app/logs,Symfony3 的 /var/logs

string CustomLogger::getLogfile(string $logName = null)

显示日志文件的完整路径 - 以防您忘记应该在何处。提供可选参数已弃用。

string StreamHandler::getLogDir()

显示日志文件的完整目录路径。应在调用 setLogger() 之后调用。