PHPackages                             vortos/vortos-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. vortos/vortos-logger

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

vortos/vortos-logger
====================

Vortos logger — Monolog PSR-3 integration

v1.0.0-alpha-153(1mo ago)0157↓50%7MITPHP &gt;=8.2

Since Apr 25Compare

[ Source](https://github.com/Vortos/vortos-logger)[ Packagist](https://packagist.org/packages/vortos/vortos-logger)[ RSS](/packages/vortos-vortos-logger/feed)WikiDiscussions Synced 3w ago

READMEChangelogDependencies (8)Versions (126)Used By (7)

Vortos Logger
=============

[](#vortos-logger)

The logger module provides PSR-3/Monolog logging with secure production defaults and explicit enterprise controls.

Defaults
--------

[](#defaults)

- `app`, `http`, `cqrs`, `messaging`, `cache`, `security`, and `query` channels are registered.
- Production logs are JSON records on stderr.
- Development logs use local rotating files.
- Log buffering is enabled and flushed at HTTP terminate, console terminate, and console error events.
- Trace correlation is enabled when the tracing module is present.
- Sensitive keys are redacted from `context` and `extra`.
- Structured fields are attached: `service.name`, `service.version`, `deployment.environment`, `event.dataset`, and `log.logger`.
- Request context is bounded to method, path, client address, user agent, tenant id, and user id.
- Introspection is enabled only in `dev`; it is disabled outside `dev` to avoid source path leakage and extra stack work.

Configuration
-------------

[](#configuration)

```
use Monolog\Level;
use Vortos\Logger\Config\LogChannel;
use Vortos\Logger\DependencyInjection\VortosLoggingConfig;

return static function (VortosLoggingConfig $config): void {
    $config
        ->service(
            name: $_ENV['OTEL_SERVICE_NAME'] ?? $_ENV['APP_NAME'] ?? 'checkout-api',
            version: $_ENV['APP_VERSION'] ?? '',
            environment: $_ENV['APP_ENV'] ?? 'prod',
        )
        ->redaction(true, keys: ['card_number', 'billing_address'])
        ->structured(true)
        ->requestContext(true)
        ->correlationId(true)
        ->buffer(true)
        ->channel(LogChannel::Security, Level::Warning);
};
```

Redaction
---------

[](#redaction)

Redaction is enabled by default for common auth and PII keys such as `password`, `token`, `authorization`, `api_key`, `email`, `phone`, and `ssn`.

Add domain-specific keys with `redaction(true, keys: [...])`. Redaction is recursive with a bounded depth, so large or cyclic payloads do not create unbounded work.

Do not log request bodies, full headers, payment data, access tokens, refresh tokens, or raw identity provider payloads. Prefer stable ids and event names.

Alert Sinks
-----------

[](#alert-sinks)

Sentry is supported as an error sink. If Sentry is configured but `sentry/sentry` is not installed, container compilation fails by default. This prevents a production deployment that appears configured but silently drops incidents.

Slack and email handlers are synchronous emergency sinks. Keep their minimum level high, such as `Critical`, and use Sentry, OpenTelemetry logs, or centralized log aggregation for primary production alerting.

```
$config->sentry(dsn: $_ENV['SENTRY_DSN'] ?? '', minLevel: Level::Error);
$config->slack(webhook: $_ENV['SLACK_LOG_WEBHOOK'] ?? '', minLevel: Level::Critical);
$config->email(to: $_ENV['LOG_ALERT_EMAIL'] ?? '', minLevel: Level::Critical);
```

Set `failOnMissingIntegrations(false)` only in local prototypes.

###  Health Score

45

—

FairBetter than 91% of packages

Maintenance94

Actively maintained with recent releases

Popularity13

Limited adoption so far

Community16

Small or concentrated contributor base

Maturity50

Maturing project, gaining track record

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

Every ~0 days

Total

125

Last Release

30d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/d4a94fd7127f8bdb58b2bb2249a140569a584b67b2df184f1e8594b497d397e2?d=identicon)[Sachintha-De-Silva](/maintainers/Sachintha-De-Silva)

### Embed Badge

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

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

###  Alternatives

[matomo/matomo

Matomo is the leading Free/Libre open analytics platform

21.7k38.9k](/packages/matomo-matomo)[laravel/framework

The Laravel Framework.

34.8k543.8M20.5k](/packages/laravel-framework)[tempest/framework

The PHP framework that gets out of your way.

2.2k34.4k16](/packages/tempest-framework)[illuminate/log

The Illuminate Log package.

6225.3M647](/packages/illuminate-log)[flow-php/flow

PHP ETL - Extract Transform Load - Data processing framework

85036.3k](/packages/flow-php-flow)[shopware/core

Shopware platform is the core for all Shopware ecommerce products.

585.6M600](/packages/shopware-core)

PHPackages © 2026

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