This package is specifically built for laravel error tracking.
- Features include:
- Application Management
- Device Management
- Log Management
- Latest versions of PHP and PHPUnit and PHPCsFixer
- Best practices applied:
README.md
(badges included)LICENSE
composer.json
phpunit.xml
.gitignore
.php-cs-fixer.php
Require this package with composer.
composer require dnj/laravel-error-tracker-server
Laravel uses Package Auto-Discovery, so doesn't require you to manually add the ServiceProvider.
php artisan vendor:publish --provider="dnj\ErrorTracker\Laravel\Server\ServiceProvider"
<?php
return [
// Define your user model class for connect entities to users.
'user_model' => \dnj\AAA\Models\User::class,
'routes' => [
'enable' => true,
'prefix' => 'log', // example: log, device, etc ... ,
],
];
ℹ️ Note
User activity logs are disabled by default, if you want to save them set
$userActivityLog
to true.
Example :
use dnj\ErrorTracker\Contracts\IAppManager;
use dnj\ErrorTracker\Contracts\IDeviceManager;
use dnj\ErrorTracker\Contracts\ILogManager;
use dnj\ErrorTracker\Contracts\LogLevel;
$appManager = app(IAppManager::class);
$app = $appManager->store(
title: 'Android mobile app',
owner: 1,
meta: ['key' => 'value']),
userActivityLog: false,
);
$deviceManager = app(IDeviceManager::class);
$device = $deviceManager->store(
title: 'Nokia mobile',
owner: 1,
meta: ['serialNo' => 44514526985]),
userActivityLog: false,
);
$logManager = app(ILogManager::class);
$log = $logManager->store(
app: $app,
device: $device,
level: LogLevel::INFO,
message: 'App just installed',
data: ['version' => "1.0.0"]
);
- Search Applications:
use dnj\ErrorTracker\Contracts\IAppManager;
$appManager = app(IAppManager::class);
$apps = $appManager->search(
filters: [
'title' => 'mobile app'
'owner' => 2
],
);
- Create new Application:
use dnj\ErrorTracker\Contracts\IAppManager;
$appManager = app(IAppManager::class);
$app = $appManager->store(
title: 'Android mobile app',
owner: 1,
meta: ['key' => 'value']),
userActivityLog: false,
);
- Update Application:
use dnj\ErrorTracker\Contracts\IAppManager;
$appManager = app(IAppManager::class);
$app = $appManager->update(
app: 1,
changes: [
'title' => 'new title',
'owner' => 2,
],
userActivityLog: true,
);
- Delete application:
use dnj\ErrorTracker\Contracts\IAppManager;
$appManager = app(IAppManager::class);
$appManager->destroy(
log: 1,
userActivityLog: false,
);
- Search Device:
use dnj\ErrorTracker\Contracts\IDeviceManager;
$deviceManager = app(IDeviceManager::class);
$devices = $deviceManager->search(
filters: [
'title' => 'Nokia Mobile'
'owner' => 2
],
);
- Create new device:
use dnj\ErrorTracker\Contracts\IDeviceManager;
$deviceManager = app(IDeviceManager::class);
$device = $deviceManager->store(
title: 'Nokia mobile',
owner: 1,
meta: ['key' => 'value']),
userActivityLog: false,
);
- Update Device:
use dnj\ErrorTracker\Contracts\IDeviceManager;
$deviceManager = app(IDeviceManager::class);
$device = $deviceManager->update(
device: 3,
changes: [
'title' => 'My Nokia Mobile',
'owner' => 2,
'meta' => ['serialNo' => 55245252]
],
userActivityLog: true,
);
- Delete application:
use dnj\ErrorTracker\Contracts\IDeviceManager;
$deviceManager = app(IDeviceManager::class);
$deviceManager->destroy(
log: 3,
userActivityLog: false,
);
- Search Device:
use dnj\ErrorTracker\Contracts\ILogManager;
use dnj\ErrorTracker\Contracts\LogLevel;
$logManager = app(ILogManager::class);
$logs = $logManager->search(
filters: [
'apps' => [1,2],
'devices' => [1],
'levels' => [LogLevel::DEBUG],
'message' => 'important flag',
'unread' => true,
]
);
- Create new log:
use dnj\ErrorTracker\Contracts\ILogManager;
use dnj\ErrorTracker\Contracts\LogLevel;
$logManager = app(ILogManager::class);
$log = $logManager->store(
app: 1,
device: 1,
level: LogLevel::INFO,
message: 'App has been started',
);
- Mark as read log:
use dnj\ErrorTracker\Contracts\ILogManager;
use dnj\ErrorTracker\Contracts\LogLevel;
$logManager = app(ILogManager::class);
$log = $logManager->markAsRead(
log: 44,
user: 3
);
- Mark as unread log:
use dnj\ErrorTracker\Contracts\ILogManager;
use dnj\ErrorTracker\Contracts\LogLevel;
$logManager = app(ILogManager::class);
$log = $logManager->markAsUnread(
log: 44,
);
- Delete log:
use dnj\ErrorTracker\Contracts\ILogManager;
$logManager = app(ILogManager::class);
$logManager->destroy(
log: 44,
userActivityLog: true,
);
You can run unit tests with PHP Unit:
./vendor/bin/phpunit
Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
If you discover any security-related issues, please email [email protected] instead of using the issue tracker.
The MIT License (MIT). Please see License File for more information.