auron-consulting-oss / php-console-logger
PHP 简单的 PSR-3 兼容控制台日志记录器
v2.0.0
2019-11-12 17:06 UTC
Requires (Dev)
- codeclimate/php-test-reporter: ^0.1.2
- infection/infection: ^0.14.2
- phpstan/phpstan: ^0.11.19
- phpunit/phpunit: ^8.4.3
This package is auto-updated.
Last update: 2024-09-17 23:47:48 UTC
README
PHP Console Logger
PhpConsoleLogger 是一个小的类,它通过一个与 PSR-3 兼容的接口在控制台中显示消息。这意味着您可以将其用作与 PSR-3 LoggerAwareInterface 兼容的代码的日志记录器,然后就可以继续使用了。
由于 shell 特定的颜色命令,此日志记录器主要用于命令行脚本。
您可能想在那些我们都用来执行迁移、数据修复等操作的命令行脚本上使用它,而无需添加完整的 PHP 控制台套件。
要求
PHP 7.2+ ext-json
安装
首选方法是通过 composer,通过 composer require auron-consulting-oss/php-console-logger
。您始终可以手动下载和安装,但您需要将 psr/log 和 PhpConsoleLogger 强行整合到您的自动加载机制中。
升级
如果从 1.x 升级,日志记录器现在将默认在日志消息旁边打印时间戳。您可以通过将 false
传递给构造函数来禁用它。
用法
// No timestamps $consoleLogger = new AuronConsultingOSS\Logger\Console(false); // With timestamps (default) $console = new AuronConsultingOSS\Logger\Console(true); [ ... ] // Then, simply use like a regular PSR-3 logger $console->info('Whatever', ['extra_stuff' => 'maybe']);
贡献
复制此仓库,做您的事情,发送 PR。测试是强制性的
- PHP 单元测试覆盖率必须为 100%
- Infection MSI 必须为 100%
- PHPStan 必须没有错误
提供的 Makefile 包含所有基本测试目标,并在 CI 中使用。
示例
我提供了一个示例(以下为代码和输出),您可以通过运行 php example/example.php
来运行它。
<?php require '../vendor/autoload.php'; require 'ExampleClass.php'; $console = new AuronConsultingOSS\Logger\Console(); // Straight string messages $console->info('This is an info message'); $console->notice('This is a notice message'); $console->debug('This is a debug message'); $console->warning('This is a warning message'); $console->alert('This is an alert message'); $console->error('This is an error message'); $console->emergency('This is an emergency message'); $console->critical('This is a critical message'); // Messages with exceptions and traces try { $exampleClass = new ExampleClass(); $exampleClass->prepare(); } catch (Exception $ex) { $console->error('Whoopsies', ['exception' => $ex]); } // Messages with random data $console->warning('Some data on context', ['foo' => 'bar']); // Messages with random data plus exception $console->alert('Some data on context, as well as an exception', ['foo' => 'bar', 'exception' => $ex]); // Passing on an exception directly as a message (or any object that implements __toString) $console->debug($ex); // Since we're PSR-3, we can be injected on objects that understand LoggerAwareInterface - example class does $exampleClass->setLogger($console); $exampleClass->runLoggerAwareExample(); // You get the idea $console->notice('That\'s it.'); $console->info('C\'est fini.');