Skip to content
/ log Public

The Themosis logging component.

Notifications You must be signed in to change notification settings

themosis/log

Repository files navigation

Themosis Log

The Themosis log component is a lightweight logging library for PHP.

The component is only promoting the PSR-3 interface and provides a simple repository interface and concrete in-memory implementation to manage PSR-3 compatible loggers.

By default, the library is not installing any logger implementation but is suggesting the usage of the popular Monolog package.

Feel free to install any PSR-3 compatible logger alongside the library.

Installation

Examples below are leveraging the usage of the Monolog library.

Install the package using Composer and add you preferred logging library implementation:

composer require themosis/log monolog/monolog

The above code is going to install the themosis/log package as well as the monolog/monolog one.

Usage

Register a logger

You can register a logger using the in-memory repository. Each logger must have a unique channel name.

use Themosis\Components\Log\Channel;
use Themosis\Components\Log\InMemoryLoggers;

// Create a logger instance using any PSR-3 library
$channel = new Channel('APP');
$logger = new Monolog\Logger($channel);

// Register the logger in the registry
$loggers = new InMemoryLoggers();
$loggers->add($channel, $logger);

The channel class provided a unique identifier for the associated logger.

A logger can not be overwritten in the repository and will throw a LoggerAlreadyExists exception if you try to do so.

Retrieve a logger

You can get back a registered logger by passing the channel identifier like so:

$applicationLogger = $loggers->get(new Channel('APP'));

// Log something using the PSR-3 retrieved logger...
$applicationLogger->info('An applicaton event just occured...');

The repository will throw a LoggerNotFound exception if the logger is not registered and you're trying to retrieve it.

If you intend to always expect a logger to be returned from the repository even if not registered, you can simply create your own repository by using the Themosis\Components\Log\Loggers interface.

About

The Themosis logging component.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages