1. Go to this page and download the library: Download jeylabs/laravel-audit-log library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
jeylabs / laravel-audit-log example snippets
auditLog()->log('Look, I logged something');
AuditLog::all();
auditLog()
->performedOn($anEloquentModel)
->causedBy($user)
->withProperties(['customProperty' => 'customValue'])
->log('Look, I logged something');
$lastLoggedAudit = AuditLog::all()->last();
$lastLoggedAudit->subject; //returns an instance of an eloquent model
$lastLoggedAudit->causer; //returns an instance of your user model
$lastLoggedAudit->getExtraProperty('customProperty'); //returns 'customValue'
$lastLoggedAudit->description; //returns 'Look, I logged something'
$newsItem->name = 'updated name';
$newsItem->save();
//updating the newsItem will cause an activity being logged
$auditLog = AuditLog::all()->last();
$auditLog->description; //returns 'updated'
$auditLog->subject; //returns the instance of NewsItem that was created
return [
/**
* You can specify the route prefix
*/
'route_prefix' => 'audit-log',
/**
* When user visit every url update audit log
*/
'record_visiting' => false,
/*
* If set to false, no audits will be saved to the database.
*/
'enabled' => env('AUDIT_LOGGER_ENABLED', true),
/*
* When the clean-command is executed, all recording audits older than
* the number of days specified here will be deleted.
*/
'delete_records_older_than_days' => 365,
/*
* If no log name is passed to the audit() helper
* we use this default log name.
*/
'default_log_name' => 'default',
/*
* You can specify an auth driver here that gets user models.
* If this is null we'll use the default Laravel auth driver.
*/
'default_auth_driver' => null,
/*
* If set to true, the subject returns soft deleted models.
*/
'subject_returns_soft_deleted_models' => false,
/*
* This model will be used to log audit. The only
use Illuminate\Database\Eloquent\Model;
use Jeylabs\AuditLog\Traits\LogsAudit
class NewsItem extends Model
{
use LogsAudit;
protected $fillable = ['name', 'text'];
protected static $logAttributes = ['name', 'text'];
}
$newsItem = NewsItem::create([
'name' => 'original name',
'text' => 'New Text'
]);
//creating the newsItem will cause an activity being logged
$auditLog = AuditLog::all()->last();
$auditLog->description; //returns 'created'
$auditLog->subject; //returns the instance of NewsItem that was created
$auditLog->changes; //returns ['attributes' => ['name' => 'original name', 'text' => 'Text']];
$newsItem->name = 'updated name'
$newsItem->save();
//updating the newsItem will cause an activity being logged
$auditLog = AuditLog::all()->last();
$auditLog->description; //returns 'updated'
$auditLog->subject; //returns the instance of NewsItem that was created
$newsItem->delete();
//deleting the newsItem will cause an activity being logged
$auditLog = AuditLog::all()->last();
$auditLog->description; //returns 'deleted'
$auditLog->changes; //returns ['attributes' => ['name' => 'updated name', 'text' => 'Text']];
use Illuminate\Database\Eloquent\Model;
use Jeylabs\AuditLog\Traits\CausesAudit;
class NewsItem extends Model
{
use CausesAudit;
//only the `deleted` event will get logged automatically
protected static $recordEvents = ['deleted'];
}
use Illuminate\Database\Eloquent\Model;
use Jeylabs\AuditLog\Traits\CausesAudit;
class NewsItem extends Model
{
use CausesAudit;
protected $fillable = ['name', 'text'];
public function getDescriptionForEvent(string $eventName): string
{
return "This model has been {$eventName}";
}
}
$newsItem = NewsItem::create([
'name' => 'original name',
'text' => 'original Text'
]);
//creating the newsItem will cause an activity being logged
$auditLog = AuditLog::all()->last();
$auditLog->description; //returns 'This model has been created'
use Illuminate\Database\Eloquent\Model;
use Jeylabs\AuditLog\Traits\LogsAudit;
class NewsItem extends Model
{
use LogsAudit;
protected static $ignoreChangedAttributes = ['text'];
protected $fillable = ['name', 'text'];
protected static $logAttributes = ['name', 'text'];
}
use Illuminate\Database\Eloquent\Model;
use Jeylabs\AuditLog\Traits\LogsAudit;
class NewsItem extends Model
{
use LogsAudit;
protected $fillable = ['name', 'text'];
protected static $logAttributes = ['name', 'text'];
protected static $logOnlyDirty = true;
}