Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/bayfrontmedia/multi-logger
An easy-to-use library used to manage multiple Monolog channels from a single class.
https://github.com/bayfrontmedia/multi-logger
Last synced: about 6 hours ago
JSON representation
An easy-to-use library used to manage multiple Monolog channels from a single class.
- Host: GitHub
- URL: https://github.com/bayfrontmedia/multi-logger
- Owner: bayfrontmedia
- License: mit
- Created: 2023-08-12T01:36:42.000Z (about 1 year ago)
- Default Branch: master
- Last Pushed: 2023-08-16T13:45:41.000Z (about 1 year ago)
- Last Synced: 2024-07-17T09:07:00.529Z (4 months ago)
- Language: PHP
- Size: 6.84 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
- Security: .github/SECURITY.md
Awesome Lists containing this project
README
## Multi-Logger
An easy-to-use library used to manage multiple [Monolog](https://github.com/Seldaek/monolog) channels from a single class.
- [License](#license)
- [Author](#author)
- [Requirements](#requirements)
- [Installation](#installation)
- [Usage](#usage)## License
This project is open source and available under the [MIT License](LICENSE).
## Author
- [Bayfront Media homepage](https://www.bayfrontmedia.com?utm_source=github&utm_medium=direct)
- [Bayfront Media GitHub](https://github.com/bayfrontmedia)## Requirements
* PHP `^8.0`
## Installation
```
composer require bayfrontmedia/multi-logger
```## Usage
**NOTE:** All exceptions thrown by Multi-Logger extend `Bayfront\MultiLogger\Exceptions\MultiLoggerException`, so you can choose to catch exceptions as narrowly or broadly as you like.
Multi-Logger exists in order manage multiple Monolog channels from a single class.
In some cases, you may still need to interact with the `Monolog\Logger` object directly, and Multi-Logger allows you to do that via the [getChannel](#getchannel) method.
A `Logger` instance must be passed to the constructor, and will automatically be set as the default and current channel.
To aid in consistency when referencing log channels, the `Bayfront\MultiLogger\ChannelName` class contains constants with suggested channel names, including:
- `APP`
- `AUDIT`
- `CLI`
- `DATABASE`
- `CONTROLLER`
- `DEV`
- `ERROR`
- `HEALTH`
- `HTTP`
- `JOB`
- `MODEL`
- `NOTIFICATION`
- `OPS`
- `PRIVILEGES`
- `PROD`
- `QA`
- `QUEUE`
- `REQUEST`
- `RESPONSE`
- `ROUTER`
- `SCHEDULE`
- `SECURITY`
- `STAGING`
- `STORAGE`**Example:**
```php
use Bayfront\MultiLogger\ChannelName;
use Bayfront\MultiLogger\Log;
use Monolog\Logger;
use Monolog\Handler\FirePHPHandler;$app_channel = new Logger(ChannelName::APP);
$app_channel->pushHandler(new FirePHPHandler());$log = new Log($app_channel);
```### Public methods
- [getChannels](#getchannels)
- [getDefaultChannel](#getdefaultchannel)
- [getCurrentChannel](#getcurrentchannel)
- [addChannel](#addchannel)
- [isChannel](#ischannel)
- [getChannel](#getchannel)
- [channel](#channel)**Logging events**
- [emergency](#emergency)
- [alert](#alert)
- [critical](#critical)
- [error](#error)
- [warning](#warning)
- [notice](#notice)
- [info](#info)
- [debug](#debug)
- [log](#log)
### getChannels
**Description:**
Return array of channel names.
**Parameters:**
- (None)
**Returns:**
- (array)
### getDefaultChannel
**Description:**
Return name of default channel.
**Parameters:**
- (None)
**Returns:**
- (string)
### getCurrentChannel
**Description:**
Return name of current channel.
**Parameters:**
- (None)
**Returns:**
- (string)
### addChannel
**Description:**
Add a logger instance as a new channel with the same name.
If an existing instance exists with the same name, it will be overwritten.
**Parameters:**
- `$logger` (object): `Monolog\Logger` object
**Returns:**
- (self)
**Example:**
```php
use Bayfront\MultiLogger\ChannelName;
use Monolog\Logger;
use Monolog\Handler\FirePHPHandler;$audit_channel = new Logger(ChannelName::AUDIT);
$audit_channel->pushHandler(new FirePHPHandler());$log->addChannel($audit_channel);
```
### isChannel
**Description:**
Does channel name exist?
**Parameters:**
- `$channel` (string)
**Returns:**
- (bool)
**Example:**
```
if ($log->isChannel(ChannelName::APP)) {
// Do something
}
```
### getChannel
**Description:**
Returns `Logger` instance for a given channel.
**Parameters:**
- `$channel = ''` (string): Name of channel to return. If empty string, the current channel will be returned.
**Returns:**
- (object): `Monolog\Logger` object
**Throws:**
- `Bayfront\MultiLogger\Exceptions\ChannelNotFoundException`
**Example:**
```
try {$app_channel = $log->getChannel(ChannelName::APP);
} catch (ChannelNotFoundException $e) {
die($e->getMessage());
}
```
### channel
**Description:**
Set the channel name to be used for the next logged event.
By default, all logged events will be logged to the default channel used in the constructor.
**Parameters:**
- `$channel` (string)
**Returns:**
- (self)
**Throws:**
- `Bayfront\MultiLogger\Exceptions\ChannelNotFoundException`
**Example:**
```
try {
$log->channel(ChannelName::AUDIT)->info('This is an informational log message.');
} catch (ChannelNotFoundException $e) {
die($e->getMessage());
}
```
### emergency
**Description:**
System is unusable.
**Parameters:**
- `$message` (string)
- `$context` (array)**Returns:**
- (void)
### alert
**Description:**
Action must be taken immediately.
Example: Entire website down, database unavailable, etc.
This should trigger the SMS alerts and wake you up.**Parameters:**
- `$message` (string)
- `$context` (array)**Returns:**
- (void)
### critical
**Description:**
Critical conditions.
Example: Application component unavailable, unexpected exception.
**Parameters:**
- `$message` (string)
- `$context` (array)**Returns:**
- (void)
### error
**Description:**
Runtime errors that do not require immediate action but should typically be logged and monitored.
**Parameters:**
- `$message` (string)
- `$context` (array)**Returns:**
- (void)
### warning
**Description:**
Exceptional occurrences that are not errors.
Example: Use of deprecated APIs, poor use of an API, undesirable things that are not necessarily wrong.
**Parameters:**
- `$message` (string)
- `$context` (array)**Returns:**
- (void)
### notice
**Description:**
Normal but significant events.
**Parameters:**
- `$message` (string)
- `$context` (array)**Returns:**
- (void)
### info
**Description:**
Interesting events.
Example: User logs in, SQL logs.
**Parameters:**
- `$message` (string)
- `$context` (array)**Returns:**
- (void)
### debug
**Description:**
Detailed debug information.
**Parameters:**
- `$message` (string)
- `$context` (array)**Returns:**
- (void)
### log
**Description:**
Logs with an arbitrary level.
**Parameters:**
- `$level` (mixed)
- `$message` (string)
- `$context` (array)**Returns:**
- (void)