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

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

seablast/logger
===============

A PSR-3 compliant error\_log() logger with adjustable verbosity.

v2.0.6(6d ago)08.2k2MITPHPPHP &gt;=7.2 &lt;8.6CI passing

Since Jul 12Pushed 6d ago1 watchersCompare

[ Source](https://github.com/WorkOfStan/seablast-logger)[ Packagist](https://packagist.org/packages/seablast/logger)[ RSS](/packages/seablast-logger/feed)WikiDiscussions main Synced 2d ago

READMEChangelog (10)Dependencies (11)Versions (18)Used By (2)

seablast-logger
===============

[](#seablast-logger)

[![Total Downloads](https://camo.githubusercontent.com/4f88bf1d42089b70ee2c33952ab2f7e4ff8d65a1ddd133d444aae9c34f767770/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f736561626c6173742f6c6f676765722e737667)](https://packagist.org/packages/seablast/logger)[![Latest Stable Version](https://camo.githubusercontent.com/9882d41884bd93a531d7ac87222bf1e022873e423f5daf8910413a5ce923530e/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f736561626c6173742f6c6f676765722e737667)](https://packagist.org/packages/seablast/logger)[![Polish the code](https://github.com/WorkOfStan/seablast-logger/actions/workflows/polish-the-code.yml/badge.svg)](https://github.com/WorkOfStan/seablast-logger/actions/workflows/polish-the-code.yml)

A [PSR-3](http://www.php-fig.org/psr/psr-3/) compliant logger with adjustable verbosity.

The logging level verbosity can be tailored to suit different environments. For instance, in a development environment, the logger can be configured to log more detailed information compared to a production environment, all without changing your code. Simply adjust the verbosity.

Internally, messages are written through PHP's `error_log()` function, either to PHP's system logger or to configured log files.

The `logging_level` controls verbosity. Lower numbers are more severe, and the logger writes messages whose level is less than or equal to the configured level. These parameters can be configured when instantiating the logger:

```
use Seablast\Logger\Logger;
$conf = array(
    // THESE ARE THE DEFAULT SETTINGS
    // 0 = send message to PHP's system logger; 3 appends to the file destination set in 'logging_file'
    Logger::CONF_ERROR_LOG_MESSAGE_TYPE => 0,
    // if error_log_message_type equals 3, the message is appended to this file destination (path and name);
    // keep this path trusted and outside the public web directory
    Logger::CONF_LOGGING_FILE => '',
    // verbosity: log up to the level set here, default=5 = debug; level 6 = speed is ignored by default
    Logger::CONF_LOGGING_LEVEL => 5,
    // rename or renumber, if needed
    Logger::CONF_LOGGING_LEVEL_NAME => array(0 => 'unknown', 1 => 'fatal', 'error', 'warning', 'info', 'debug', 'speed'),
    // minimum configured verbosity needed to log page-speed messages, i.e. messages with error_number 6
    Logger::CONF_LOGGING_LEVEL_PAGE_SPEED => 5,
    // false => use logging_file with log extension as destination; true => adds .Y-m.log to the logging file
    Logger::CONF_LOG_MONTHLY_ROTATION => true,
    // prefix message that took longer than profiling step (float) sec from the previous one by SLOWSTEP
    Logger::CONF_LOG_PROFILING_STEP => false,
    // fatal error may just be written in log, on production, it is however recommended to set an e-mail, where to announce fatal errors
    Logger::CONF_MAIL_FOR_ADMIN_ENABLED => false,
);
$logger = new Logger($conf);
```

See [test.php](test.php) for usage.

Security note: `logging_file` is a filesystem destination. Keep it under application control, do not fill it directly from user input, environment values, or request data without validation, and prefer a directory outside the public web root so logs cannot be downloaded by clients. Log entries can include diagnostic data such as script paths and full request URIs, including query strings, so treat log files as sensitive data available only to authorized operators.

When using `log()` directly, pass a standard PSR-3 string level such as `LogLevel::INFO` or a numeric level from `CONF_LOGGING_LEVEL_NAME`. The optional context key `error_number`, or the first numeric context value, selects the category written in the log prefix; other PSR-3 context values are left untouched and are not interpolated into the message.

By default the logger logs the following levels of information:

- fatal
- error
- warning
- info
- debug

And ignores

- speed

Note: Outputting log messages to the screen is not supported.

Runtime adjustment
------------------

[](#runtime-adjustment)

- method logAtLeastToLevel(int $level) may raise the verbosity level above the level set when instantiating.
- method setUser(int|string $user) may add the user identification to the error messages

Tracy\\Logger::log wrapper
--------------------------

[](#tracyloggerlog-wrapper)

Since Tracy 2.6.0 it is possible to use a PSR-3 adapter, allowing integration with [seablast/logger](https://github.com/WorkOfStan/seablast-logger). This package currently keeps `"php": ">=7.2
