utopia-php / logger
Utopia Logger 库是一个简单且轻量级的日志信息库,例如错误或警告。该库的目标是尽可能简单、易于学习和使用。
0.6.1
2024-09-20 14:02 UTC
Requires
- php: >=8.0
Requires (Dev)
- laravel/pint: 1.2.*
- phpstan/phpstan: 1.9.x-dev
- phpunit/phpunit: ^9.3
- vimeo/psalm: 4.0.1
- dev-main
- 0.6.1
- 0.6.0
- 0.5.2
- 0.5.1
- 0.5.0
- 0.4.0
- 0.3.x-dev
- 0.3.2
- 0.3.1
- 0.3.0
- 0.2.0
- 0.1.0
- dev-fix-default-hosts
- dev-feat-tests-on-github
- dev-tmp-logs
- dev-fix-sentry-warning
- dev-fix-sentry-constructor
- dev-fix-warning
- dev-feat-introduce-linter-job
- dev-doc-update-contributing
- dev-feat-logowl-adapter
- dev-fix-build-badge
- dev-dev
This package is auto-updated.
Last update: 2024-09-20 14:02:41 UTC
README
Utopia Logger 库是一个简单且轻量级的日志信息库,例如错误或警告。该库的目标是尽可能简单、易于学习和使用。该库由 Appwrite 团队 维护。
尽管该库是为 Utopia 框架 项目构建的,但它完全独立,无依赖,可以与任何其他 PHP 项目或框架一起使用。
入门指南
使用 composer 安装
composer require utopia-php/logger
<?php require_once '../vendor/autoload.php'; use Utopia\Logger\Adapter\AppSignal; use Utopia\Logger\Adapter\Raygun; use Utopia\Logger\Adapter\Sentry; use Utopia\Logger\Adapter\LogOwl; use Utopia\Logger\Log; use Utopia\Logger\Log\Breadcrumb; use Utopia\Logger\Log\User; use Utopia\Logger\Logger; // Prepare log $log = new Log(); $log->setAction("controller.database.deleteDocument"); $log->setEnvironment("production"); $log->setNamespace("api"); $log->setServer("digitalocean-us-001"); $log->setType(Log::TYPE_WARNING); $log->setVersion("0.11.5"); $log->setMessage("Document efgh5678 not found"); $log->setUser(new User("efgh5678")); $log->addBreadcrumb(new Breadcrumb(Log::TYPE_DEBUG, "http", "DELETE /api/v1/database/abcd1234/efgh5678", \microtime(true) - 500)); $log->addBreadcrumb(new Breadcrumb(Log::TYPE_DEBUG, "auth", "Using API key", \microtime(true) - 400)); $log->addBreadcrumb(new Breadcrumb(Log::TYPE_INFO, "auth", "Authenticated with * Using API Key", \microtime(true) - 350)); $log->addBreadcrumb(new Breadcrumb(Log::TYPE_INFO, "database", "Found collection abcd1234", \microtime(true) - 300)); $log->addBreadcrumb(new Breadcrumb(Log::TYPE_DEBUG, "database", "Permission for collection abcd1234 met", \microtime(true) - 200)); $log->addBreadcrumb(new Breadcrumb(Log::TYPE_ERROR, "database", "Missing document when searching by ID!", \microtime(true))); $log->addTag('sdk', 'Flutter'); $log->addTag('sdkVersion', '0.0.1'); $log->addTag('authMode', 'default'); $log->addTag('authMethod', 'cookie'); $log->addTag('authProvider', 'MagicLink'); $log->addExtra('urgent', false); $log->addExtra('isExpected', true); // Sentry $adapter = new Sentry("[YOUR_SENTRY_DSN]"); $logger = new Logger($adapter); $logger->addLog($log); // AppSignal $adapter = new AppSignal("[YOUR_APPSIGNAL_KEY]"); $logger = new Logger($adapter); $logger->addLog($log); // Raygun $adapter = new Raygun("[YOUR_RAYGUN_KEY]"); $logger = new Logger($adapter); $logger->addLog($log); // Log Owl $adapter = new LogOwl("[YOUR_SERVICE_TICKET]"); $logger = new Logger($adapter); $logger->addLog($log);
适配器
以下是支持的适配器列表,以及它们兼容性测试的版本,以及支持的功能和相关限制。
✅ - 支持,🛠 - 进行中
测试
如果需要安装依赖项,请运行
docker run --rm --interactive --tty \
--volume $PWD:/app \
composer update --ignore-platform-reqs --optimize-autoloader --no-plugins --no-scripts --prefer-dist
要运行所有单元测试,请使用 .env.example
作为模板准备 .env
文件。然后,运行
docker run --rm --interactive --tty --env-file .env \ --volume $PWD:/app \ composer test
请确保将
TEST_SENTRY_DSN
替换为 Sentry 的实际密钥。
请确保将
TEST_APPSIGNAL_KEY
替换为在 Appsignal -> 项目 -> 应用设置 -> 推送 & 部署 -> 推送密钥中找到的密钥
请确保将
TEST_RAYGUN_KEY
替换为在 Raygun -> 项目 -> 应用程序设置 -> API 密钥中找到的密钥
要运行静态代码分析,请使用以下 Psalm 命令
docker run --rm --interactive --tty \
--volume $PWD:/app \
composer check
系统要求
Utopia 框架需要 PHP 8.0 或更高版本。我们建议在可能的情况下始终使用最新的 PHP 版本。
版权和许可
MIT 许可证 (MIT) http://www.opensource.org/licenses/mit-license.php