memran/marwa-logger
Composer 安装命令:
composer require memran/marwa-logger
包简介
PSR-3 JSON logger with sensitive-data filtering and pluggable storage (file; Kafka/DB-ready).
README 文档
README
A tiny, fast PSR-3 logger that writes JSON lines (NDJSON), with:
- ✅ Sensitive-data filtering (recursive, configurable keys)
- ✅ Pluggable storage via
SinkInterface(File sink now; Kafka/DB-ready) - ✅ Date + size rotation (e.g.
myapp-YYYY-MM-DD.log, rolls whenmax_byteshit) - ✅ Dev vs Prod behavior (prod ignores “user-origin” logs unless
['_origin'=>'system'])
Install
composer require memran/marwa-logger
Quick Example
use Marwa\Logger\SimpleLogger; use Marwa\Logger\Support\SensitiveDataFilter; use Marwa\Logger\Storage\StorageFactory; use Psr\Log\LogLevel; $logDir = __DIR__ . '/storage/logs'; if (!is_dir($logDir)) { @mkdir($logDir, 0775, true); } $sink = StorageFactory::make([ 'driver' => 'file', 'path' => $logDir, 'prefix' => 'myapp', 'max_bytes' => '10MB', ]); $logger = new SimpleLogger( appName: 'myapp', env: 'production', sink: $sink, filter: new SensitiveDataFilter(), logging: true, // turn on logging productionMinLevel: LogLevel::ERROR // only ERROR and above ); // ignored: user-origin in prod $logger->info('user clicked', ['_origin' => 'user']); // ignored: system but too low (warning < error) $logger->warning('slow_query', ['_origin' => 'system']); // logged: system + error $logger->error('db_connect_failed', ['_origin' => 'system', 'dsn' => 'mysql:...']); // Prod ignores user-origin logs: $logger->info('clicked', ['user_id'=>1]); // ignored (user-origin) $logger->error('cache_miss', ['_origin'=>'system','key'=>'user']); // logged
Example Usage
<?php require __DIR__ . '/../vendor/autoload.php'; use Marwa\Logger\Logger; // Boot logger (env auto-detected from APP_ENV or defaults to dev) $logger = Logger::boot('my-app'); // Write logs $logger->info("Application started", ['env' => getenv('APP_ENV')]); $logger->error("Critical failure", ['exception' => 'RuntimeException']); // Or use init() alias $logger = Logger::init('payments', 'prod'); $logger->warning("Payment delayed", ['user_id' => 42]);
统计信息
- 总下载量: 20
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 0
- 依赖项目数: 3
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2025-08-08