8ctopus/apix-log
Composer 安装命令:
composer require 8ctopus/apix-log
包简介
Minimalist, thin and fast PSR-3 compliant (multi-bucket) logger.
README 文档
README
This project is a detached fork of APIx Log as I wanted to add features and bug fixes not available in the original version.
Minimalist and fast PSR-3 compliant logger.
-
Light, come out-of-the-box bundle with wrappers for:
-
Extendable, additional logging backends are available:
- PHPMailer/apix-log-phpmailer ~ logs are sent using PHPMailer,
- jspalink/apix-log-pushover ~ logs are sent using Pushover,
- apix/log-tracker ~ adds logger/tracker such as Google Analytics, Dashbot, etc...,
-
Very fast and even faster when logging is deferred. See here on how it compares to monolog
-
Clean API, see the
LoggerInterfaceand theFormatInterface. -
100% Unit tested and compliant with PSR0, PSR1 and PSR2.
Feel free to comment, send pull requests and patches...
Installation
composer require 8ctopus/apix-log
Basic usage
This simple logger is set to intercept all logs and display them in the console.
$console = (new Apix\Log\Logger\Stream('php://stdout')) ->setMinLevel('debug') ->setFormat(new Apix\Log\Format\StandardColored()) ->notice('Running out of {items}', 'Running out of {items} - left {left}', [ 'items' => 'beers', 'left' => 5, ]);
[2023-03-20 08:01:25] NOTICE Running out of beers - left 5
Advanced usage ~ multi-logs dispatcher
Let's create an additional logger with purpose of catching log entries that have a severity level of warning or more.
See the log levels for the order.
$file = (new Apix\Log\Logger\File(__DIR__ . '/app.log')) // intercept logs that are >= `warning` ->setMinLevel('warning') // propagate to other loggers ->setCascading(true) // postpone writing logs to file ->setDeferred(true) // flush logs to file once 100 logs are collected ->setDeferredTrigger(100);
setCascading()set to true (default: true) so the entries caught here continue downstream past that particular logger.\setDeferred()was set to true (default: false) so processing happens when:setDeferredTriggeris reachedflushDeferredLogsis called__destruct(end of script generally)
Now, let's create a main logger object and inject the two previous loggers.
$logger = new Apix\Log\Logger([$console, $file]);
Finally, let's push some log entries:
$exception = new \Exception('Boo!'); // handled by all loggers $logger->critical('OMG saw {bad-exception}', ['bad-exception' => $exception]); // push an object (or array) directly $logger->error($exception); // handled by console logger $logger->info('Testing a var {my_var}', ['my_var' => [...]]);
Log levels
The eight RFC 5424 levels of logs are supported, in cascading order:
| Severity | Description |
|---|---|
| Emergency | System level failure (not application level) |
| Alert | Failure that requires immediate attention |
| Critical | Serious failure at the application level |
| Error | Runtime errors, used to log unhandled exceptions |
| Warning | May indicate that an error will occur if action is not taken |
| Notice | Events that are unusual but not error conditions |
| Info | Normal operational messages (no action required) |
| Debug | Verbose info useful to developers for debugging purposes (default) |
License
APIx Log is licensed under the New BSD license -- see the LICENSE.txt for the full license details.
todo
- compare only log entry vs master branch
- fix demo colors in branch only log entry if faster
- should Logger inherit from AbstractLogger?
- add html formatting for emails
- change context logging
- add log line?
8ctopus/apix-log 适用场景与选型建议
8ctopus/apix-log 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 475 次下载、GitHub Stars 达 1, 最近一次更新时间为 2023 年 02 月 13 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「log」 「logging」 「logger」 「psr」 「psr-3」 「apix」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 8ctopus/apix-log 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 8ctopus/apix-log 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 8ctopus/apix-log 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
A Zend Framework module that sets up Monolog for logging in applications.
Workflow logger
HTTP request logger middleware for Laravel
Asynchronous Sentry for Symfony - Fire and forget
Stackdriver handler for Monolog (codeinternetapplications/monolog-stackdriver Fork).
Laravel 5.x.x library for integration Monolog Sentry
统计信息
- 总下载量: 475
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 1
- 点击次数: 29
- 依赖项目数: 3
- 推荐数: 0
其他信息
- 授权协议: BSD-3-Clause
- 更新时间: 2023-02-13