承接 memran/marwa-logger 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

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

Latest Version Total Downloads License PHP Version

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 when max_bytes hit)
  • 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

GitHub 信息

  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2025-08-08