PHPackages                             memran/marwa-logger - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Logging &amp; Monitoring](/categories/logging)
4. /
5. memran/marwa-logger

ActiveLibrary[Logging &amp; Monitoring](/categories/logging)

memran/marwa-logger
===================

Lightweight PSR-3 JSON logger for PHP with redaction, rotation, and retention.

v1.0.0(1mo ago)01022MITPHPPHP &gt;=8.1

Since Mar 28Pushed 6mo agoCompare

[ Source](https://github.com/memran/marwa-logger)[ Packagist](https://packagist.org/packages/memran/marwa-logger)[ RSS](/packages/memran-marwa-logger/feed)WikiDiscussions main Synced 1mo ago

READMEChangelogDependencies (3)Versions (2)Used By (2)

memran/marwa-logger
===================

[](#memranmarwa-logger)

[![Latest Version](https://camo.githubusercontent.com/c4acaae8ca0e18114fdf1e78610270c43c667056e6606f233a56cffe3d41112f/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f6d656d72616e2f6d617277612d6c6f676765722e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/memran/marwa-logger)[![Total Downloads](https://camo.githubusercontent.com/80cb87fc3475050e37e33b1ee6a5e1dc5ef66d5dda06c9b6da5e7d8f5900fa58/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f6d656d72616e2f6d617277612d6c6f676765722e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/memran/marwa-logger)[![License](https://camo.githubusercontent.com/0407e2b4f7d04372a068c22b596f4b8d48b0c13bd99d51709b97efa7623758ef/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f6c2f6d656d72616e2f6d617277612d6c6f676765722e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/memran/marwa-logger)[![PHP Version](https://camo.githubusercontent.com/3afe9af8a5c1160b372cad5a5463a5cd1a222f2bb5ff7be914fc577d4b449340/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f7068702d762f6d656d72616e2f6d617277612d6c6f676765722e7376673f7374796c653d666c61742d737175617265)](https://php.net)

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
-------

[](#install)

```
composer require memran/marwa-logger
```

Quick Example
=============

[](#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 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
=============

[](#example-usage)

```
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]);
```

###  Health Score

38

—

LowBetter than 85% of packages

Maintenance78

Regular maintenance activity

Popularity14

Limited adoption so far

Community10

Small or concentrated contributor base

Maturity42

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

52d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/8cf906a31a250a940314fe42f8a18f449647bfe18095457350ff0081cf8dd3c2?d=identicon)[memran](/maintainers/memran)

---

Top Contributors

[![memran](https://avatars.githubusercontent.com/u/7415198?v=4)](https://github.com/memran "memran (7 commits)")

###  Code Quality

TestsPHPUnit

Static AnalysisPHPStan

Type Coverage Yes

### Embed Badge

![Health badge](/badges/memran-marwa-logger/health.svg)

```
[![Health](https://phpackages.com/badges/memran-marwa-logger/health.svg)](https://phpackages.com/packages/memran-marwa-logger)
```

###  Alternatives

[sentry/sentry

PHP SDK for Sentry (http://sentry.io)

1.9k227.1M273](/packages/sentry-sentry)[rollbar/rollbar

Monitors errors and exceptions and reports them to Rollbar

33723.7M82](/packages/rollbar-rollbar)[illuminate/log

The Illuminate Log package.

6224.3M518](/packages/illuminate-log)[open-telemetry/api

API for OpenTelemetry PHP.

1933.0M214](/packages/open-telemetry-api)[open-telemetry/sdk

SDK for OpenTelemetry PHP.

2322.9M248](/packages/open-telemetry-sdk)[pagemachine/typo3-formlog

Form log for TYPO3

23225.3k6](/packages/pagemachine-typo3-formlog)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
