PHPackages                             net\_bazzline/component\_proxy\_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. net\_bazzline/component\_proxy\_logger

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

net\_bazzline/component\_proxy\_logger
======================================

php component proxy logger

1.2.0(12y ago)116LGPLv3PHPPHP &gt;=5.3.3

Since Aug 29Pushed 11y ago1 watchersCompare

[ Source](https://github.com/stevleibelt/php_component_proxy_logger)[ Packagist](https://packagist.org/packages/net_bazzline/component_proxy_logger)[ Docs](https://github.com/stevleibelt/php_component_proxy_logger)[ RSS](/packages/net-bazzline-component-proxy-logger/feed)WikiDiscussions master Synced 3d ago

READMEChangelogDependencies (7)Versions (10)Used By (0)

Logger Proxy Component
======================

[](#logger-proxy-component)

This component ships a collection of enhanced proxy logger handling tools.

Current stable version is [1.2.0](https://github.com/stevleibelt/php_component_proxy_logger/tree/1.2.0).

The build status of the current master branch is tracked by Travis CI: [![Build Status](https://camo.githubusercontent.com/0950dc6be9228a95e2cf62a40bae4497f7ef16b48c24fc9b2f2c8b141f6718e2/68747470733a2f2f7472617669732d63692e6f72672f737465766c656962656c742f7068705f636f6d706f6e656e745f70726f78795f6c6f676765722e706e673f6272616e63683d6d6173746572)](http://travis-ci.org/stevleibelt/php_component_proxy_logger)

The main idea is to use a proxy with a buffer for one or a collection of [PSR-3 logger](https://github.com/php-fig/log) to add freedom and silence back to your log files.

Features
========

[](#features)

- full [PSR-3 Logger Interface](https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-3-logger-interface.md) compatibility
- allows you define when log messages are pushed to your loggers
- only logs if configured log level is reached
- regains freedom and silence in your log files
- use the proxy logger component to combine management of multiple loggers

Licence
=======

[](#licence)

This software is licenced under [GNU LESSER GENERAL PUBLIC LICENSE](https://www.gnu.org/copyleft/lesser.html). The full licence text is shipped [within](https://github.com/stevleibelt/php_component_proxy_logger/blob/master/LICENSE) this component package.

Links
=====

[](#links)

Documentation
-------------

[](#documentation)

[Common Terms](https://github.com/stevleibelt/php_component_proxy_logger/blob/master/documentation/CommonTerms.md)
==================================================================================================================

[](#common-terms)

- [Components](https://github.com/stevleibelt/php_component_proxy_logger/blob/master/documentation/Components.md)
- [Installation](https://github.com/stevleibelt/php_component_proxy_logger/blob/master/documentation/Installation.md)
- [Migration Tutorial](https://github.com/stevleibelt/php_component_proxy_logger/blob/master/documentation/MigrationTutorial.md)
- [Examples](https://github.com/stevleibelt/php_component_proxy_logger/blob/master/documentation/Examples.md)
- [Version History](https://github.com/stevleibelt/php_component_proxy_logger/blob/master/documentation/VersionHistory.md)
- [Future Thoughts](https://github.com/stevleibelt/php_component_proxy_logger/blob/master/documentation/FutureThoughts.md)

PSR-3 Logger
------------

[](#psr-3-logger)

Following an uncompleted list of available PSR3-Logger components.

- [Talkback](https://github.com/chrisnoden/talkback)
- [Logger](https://github.com/geoffroy-aubry/Logger)
- [Simple Logger](https://github.com/fguillot/simpleLogger)
- [Analog](https://github.com/jbroadway/analog)
- [Packagist Search For PSR-3](https://packagist.org/search/?tags=psr-3)

Reason To Use This Component
============================

[](#reason-to-use-this-component)

Comparison Between Normal Logger And Trigger Flush Buffer Logger
----------------------------------------------------------------

[](#comparison-between-normal-logger-and-trigger-flush-buffer-logger)

Taken from the example [upward flush buffer trigger versus normal logger](https://github.com/stevleibelt/php_component_proxy_logger/blob/master/examples/Example/ManipulateBufferLogger/ExampleWithUpwardFlushBufferTriggerVersusNormalLogger.php).

This [example](https://github.com/stevleibelt/php_component_proxy_logger/blob/master/examples/Example) shows a process that is working on a collection of items.

The first run is simple *logging all information's*. This fills up your logs pretty fast.

```
----------------------------------------
Setting trigger to warning
----------------------------------------
First run with normal logger without log level restriction.
----------------------------------------
[1382566548] [debug] [processing id 1]
[1382566548] [info] [collection information and data id: 1]
[1382566548] [debug] [done]
[1382566548] [debug] [processing id 3]
[1382566548] [info] [collection information and data id: 3]
[1382566548] [info] [data can not handled with this process, queueing data to manual processing list]
[1382566548] [debug] [done]
[1382566548] [debug] [processing id 8]
[1382566548] [info] [collection information and data id: 8]
[1382566548] [info] [logical problem in data on key 3]
[1382566548] [notice] [trying to recalculate data]
[1382566548] [info] [setting data value of key 7 to default]
[1382566548] [debug] [finished]
[1382566548] [debug] [processing id 4]
[1382566548] [info] [collection information and data id: 4]
[1382566548] [debug] [done]
[1382566548] [debug] [processing id 5]
[1382566548] [info] [collection information and data id: 5]
[1382566548] [info] [logical problem in data on key 6]
[1382566548] [notice] [trying to recalculate data]
[1382566548] [warning] [setting data value of key 7 to default not possible]
[1382566548] [notice] [trying to revert modification]
[1382566548] [error] [runtime data and data in storage differs, can not revert modification]
[1382566548] [critical] [lost connection to storage]
[1382566548] [alert] [can not unlock and schedule processing to id 5]
[1382566548] [debug] [done]
[1382566548] [debug] [processing id 6]
[1382566548] [critical] [lost connection to storage]
[1382566548] [alert] [can not unlock and schedule processing to id 6]
[1382566548] [debug] [done]
```

Since the second run has a logger, that only displays log levels of warning and above, you do not fill up your logs with unnecessary log requests.

But too bad, when something happens *you are loosing information's*.

```
----------------------------------------
Second run with normal logger and log level restriction to warning and above.
----------------------------------------
[1382566548] [warning] [setting data value of key 7 to default not possible]
[1382566548] [error] [runtime data and data in storage differs, can not revert modification]
[1382566548] [critical] [lost connection to storage]
[1382566548] [alert] [can not unlock and schedule processing to id 5]
[1382566548] [critical] [lost connection to storage]
[1382566548] [alert] [can not unlock and schedule processing to id 6]
```

The third run is logging everything without any restriction only, if and for the area where something happens.

You are *not loosing information* and *don't fill up your log* with not needed log requests.

```
----------------------------------------
Third run with manipulate buffer logger.
----------------------------------------
[1382566548] [debug] [processing id 5]
[1382566548] [info] [collection information and data id: 5]
[1382566548] [info] [logical problem in data on key 6]
[1382566548] [notice] [trying to recalculate data]
[1382566548] [warning] [setting data value of key 7 to default not possible]
[1382566548] [notice] [trying to revert modification]
[1382566548] [error] [runtime data and data in storage differs, can not revert modification]
[1382566548] [critical] [lost connection to storage]
[1382566548] [alert] [can not unlock and schedule processing to id 5]
[1382566548] [debug] [processing id 6]
[1382566548] [critical] [lost connection to storage]
[1382566548] [alert] [can not unlock and schedule processing to id 6]
```

As you can see, only the third run logs all the information you need to debug your code and fix possible bugs.

Using Two Trigger Flush Buffer Logger As A Collection In One Buffer Logger
--------------------------------------------------------------------------

[](#using-two-trigger-flush-buffer-logger-as-a-collection-in-one-buffer-logger)

This [example](https://github.com/stevleibelt/php_component_proxy_logger/blob/master/examples/Example/ManipulateBufferLogger/ExampleWithTwoManipulateBufferLoggerInOneBufferLogger.php) shows how you can use two trigger flush buffer logger as a collection.

The example is using two manipulate buffer loggers injected in an buffer logger. The first manipulate buffer logger is flushing the buffer via a trigger on the log level *alert*. The second one triggers the buffer flush on log level *critical*.

Furthermore, three runs are simulated in the example. The first run only adds log levels below critical or alert, meaning no buffer flush is triggered.

```
----------------------------------------
First run - adding info and error messages
----------------------------------------
cleaning log buffer
```

The second run adds log levels up to critical, meaning the buffer flush for the first logger is triggered.

```
----------------------------------------
Second run - adding info, error and critical messages

[1382643874] [info] [mail] [Current line is 94]
[1382643874] [error] [mail] [Current line is 95]
[1382643874] [info] [mail] [Current line is 96]
[1382643874] [info] [mail] [Current line is 103]
[1382643874] [error] [mail] [Current line is 104]
[1382643874] [critical] [mail] [Current line is 105]
----------------------------------------
cleaning log buffer
```

Finally, the third run is adding log levels up to alert, meaning a buffer flush is triggered for both loggers.

```
----------------------------------------
Third run - adding info, error, critical and alert messages

[1382643874] [info] [mail] [Current line is 106]
[1382643874] [info] [mail] [Current line is 113]
[1382643874] [error] [mail] [Current line is 114]
[1382643874] [critical] [mail] [Current line is 115]
[1382643874] [info] [mail] [Current line is 116]
[1382643874] [alert] [mail] [Current line is 117]
[1382643874] [info] [wakeup call] [Current line is 94]
[1382643874] [error] [wakeup call] [Current line is 95]
[1382643874] [info] [wakeup call] [Current line is 96]
[1382643874] [info] [wakeup call] [Current line is 103]
[1382643874] [error] [wakeup call] [Current line is 104]
[1382643874] [critical] [wakeup call] [Current line is 105]
[1382643874] [info] [wakeup call] [Current line is 106]
[1382643874] [info] [wakeup call] [Current line is 113]
[1382643874] [error] [wakeup call] [Current line is 114]
[1382643874] [critical] [wakeup call] [Current line is 115]
[1382643874] [info] [wakeup call] [Current line is 116]
[1382643874] [alert] [wakeup call] [Current line is 117]
----------------------------------------
```

What is this example all about? As the names of the logger requests are anticipating, you can implement this by sending an email if log level critical is reached and sending a wake up call if log level alert is reached.

###  Health Score

28

—

LowBetter than 54% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity7

Limited adoption so far

Community9

Small or concentrated contributor base

Maturity64

Established project with proven stability

 Bus Factor1

Top contributor holds 96% 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

Every ~13 days

Recently: every ~20 days

Total

8

Last Release

4547d ago

Major Versions

0.9.0 → 1.0.02013-09-08

### Community

Maintainers

![](https://www.gravatar.com/avatar/58451b041f6f5a38c7e62762c96d01f5e2bcac30e322707fe4760a82bccb6856?d=identicon)[artodeto](/maintainers/artodeto)

---

Top Contributors

[![stevleibelt](https://avatars.githubusercontent.com/u/2287220?v=4)](https://github.com/stevleibelt "stevleibelt (474 commits)")[![atodeto](https://avatars.githubusercontent.com/u/1136516?v=4)](https://github.com/atodeto "atodeto (20 commits)")

---

Tags

logpsr-3phploggingproxyloggercomponentnet\_bazzline

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/net-bazzline-component-proxy-logger/health.svg)

```
[![Health](https://phpackages.com/badges/net-bazzline-component-proxy-logger/health.svg)](https://phpackages.com/packages/net-bazzline-component-proxy-logger)
```

###  Alternatives

[analog/analog

Fast, flexible, easy PSR-3-compatible PHP logging package with dozens of handlers.

3451.5M24](/packages/analog-analog)[inpsyde/wonolog

Monolog-based logging package for WordPress.

183617.9k7](/packages/inpsyde-wonolog)[apix/log

Minimalist, thin and fast PSR-3 compliant (multi-bucket) logger.

511.0M18](/packages/apix-log)[markrogoyski/simplelog-php

Powerful PSR-3 logging. So easy, it's simple.

2818.1k4](/packages/markrogoyski-simplelog-php)[atrapalo/monolog-elasticsearch

A Monolog handler and formatter that makes use of the elasticsearch/elasticsearch package

1123.0k](/packages/atrapalo-monolog-elasticsearch)

PHPackages © 2026

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