laravel-logsnag
Get a realtime feed of your Laravel project’s most important events using Logsnag. Supports push notifications straight to your phone.
Get notified:
- In the Logsnag dashboard.
- On your desktop/laptop (windows + macOS).
- On your phone (android + iOS).
Support me
I create Open Source software in my spare time. If you wish to support me, consider buying me a coffee :).
Beta
Logsnag is currently in beta mode, and you must join the waitlist in order to use it. However, they accept people fairly quickly. Join on their website here: https://logsnag.com/.
Requirements
- PHP 8+
- Laravel 9
Installation
You can install the package via composer:
composer require expdev07/laravel-logsnag
You can publish the config file with:
php artisan vendor:publish --tag="logsnag-config"
This is the contents of the published config file:
return [
/*
|--------------------------------------------------------------------------
| Logsnag.
|--------------------------------------------------------------------------
|
| Configure the Logsnag options.
|
*/
/**
* The project name.
*/
'project' => env('LOGSNAG_PROJECT', 'laravel'),
/**
* The API token.
*/
'token' => env('LOGSNAG_TOKEN', ''),
/**
* A mapping of icons for logging.
*/
'icons' => [
'DEBUG' => 'ℹ️',
'INFO' => 'ℹ️',
'NOTICE' => '📌',
'WARNING' => '⚠️',
'ERROR' => '⚠️',
'CRITICAL' => '🔥',
'ALERT' => '🔔️',
'EMERGENCY' => '💀',
],
];
Add the Logsnag channel to your logging config:
'channels' => [
//...
'logsnag' => [
'driver' => 'custom',
'via' => ExpDev07\Logsnag\Logger\LogsnagLogger::class,
'level' => 'debug',
'project' => 'my-project',
'channel' => 'my-channel',
'notify' => true,
],
];
Usage
Using logger:
use Illuminate\Support\Facades\Log;
Log::channel('logsnag')->emergency('There is an emergency! Please fix ASAP.');
Using facade:
use ExpDev07\Logsnag\Facades\Logsnag;
Logsnag::log('my-channel',
event: 'New subscriber!',
description: 'Someone just subscribed to MySaaS Pro at $9.99',
icon: '🤑',
notify: true,
);
Using client:
use ExpDev07\Logsnag\Client\LogsnagClient;
app(LogsnagClient::class)->log(new LogsnagRequest(
project: 'project-name',
channel: 'channel',
event: 'Test event',
description: 'This is a description for test event',
icon: '😊',
notify: true,
));
Parameters
- project: The logsnag project name.
- channel: The channel to log in. Must be lowercase and hyphenated.
- event: The event name.
- description: The event description.
- icon: Associate the log with an icon (emoji).
- notify: Whether to send push notifications to devices.
See Logsnag Log route for more information.
Screenshots
A log about a new subscriber in the Logsnag dashboard.
A log about an app emergency in the Logsnag dashboard.
Testing
composer test
Changelog
Please see CHANGELOG for more information on what has changed recently.
Contributing
Please see CONTRIBUTING for details.
Security Vulnerabilities
Please review our security policy on how to report security vulnerabilities.
Credits
License
The MIT License (MIT). Please see License File for more information.