CodeIgniter Forums
Object Logging Library - Printable Version

+- CodeIgniter Forums (https://forum.codeigniter.com)
+-- Forum: CodeIgniter 4 (https://forum.codeigniter.com/forum-28.html)
+--- Forum: CodeIgniter 4 Addins (https://forum.codeigniter.com/forum-34.html)
+--- Thread: Object Logging Library (/thread-73284.html)



Object Logging Library - MGatner - 04-07-2019

Hi all! I'd like to share my first completely original CodeIgniter4 Library. While my other libraries so far have been mostly ports from CI3, this one was conceived and implemented entirely from working in CI4. It's another lightweight library designed to "plug and play" so you don't have to worry about how to set it up or spend a lot of time configuring.
Presenting:


Tatter/Audits - out-of-the-box object event logging for CodeIgniter 4

Basic usage:
1. Install with Composer: `> composer require tatter/audits`
2. Update the database: `> php spark migrate:latest -all`
3. Setup your models:
PHP Code:
class JobModel extends Model
{
use \
Tatter\Audits\Traits\AuditsTrait;
protected 
$afterInsert = ['auditInsert'];
protected 
$afterUpdate = ['auditUpdate'];
protected 
$afterDelete = ['auditDelete']; 
4. All done!

Audits will watch for insert, update, and delete calls (or whichever you include) on configured models and log it in the `audits` table:
Code:
| id | source | source_id | user_id | event  | summary  |          created_at |
+----+--------+-----------+---------+--------+----------+---------------------+
| 10 | sites  |        27 |       9 | create | 2 rows   | 2019-04-05 15:58:40 |
| 11 | jobs   |        10 |       9 | update | 5 rows   | 2019-04-05 16:01:35 |
(Logs are batched to optimize database calls.)


I am eager for feedback, suggestions, and contributions - feel free to respond here or on GitHub (https://github.com/tattersoftware/codeigniter4-audits).
Thanks for reading!


RE: Object Logging Library - Inc33 - 06-27-2020

Would be more useful if it would log the actual fields and value of the changes


RE: Object Logging Library - MGatner - 06-29-2020

@Inc33 I will look into it. At the time of this module the afterInsert and afterUpdate events didn’t contain sufficient data without making a second database call, which would be a big performance hit. The events have since changed so I will see how viable that is.


RE: Object Logging Library - Inc33 - 06-30-2020

(06-29-2020, 04:17 PM)MGatner Wrote: @Inc33 I will look into it. At the time of this module the afterInsert and afterUpdate events didn’t contain sufficient data without making a second database call, which would be a big performance hit. The events have since changed so I will see how viable that is.

You'r right, it's a dangerous path. But it is possible to do it, even if only contains the new values, as you can somehow get back the older values from the previous entry.
But if you have that, then you can basically create a trigger based event system in your app, and do a lot of cool stuff Big Grin


RE: Object Logging Library - marcogmonteiro - 06-30-2020

(06-29-2020, 04:17 PM)MGatner Wrote: @Inc33 I will look into it. At the time of this module the afterInsert and afterUpdate events didn’t contain sufficient data without making a second database call, which would be a big performance hit. The events have since changed so I will see how viable that is.


I love the lib thus far, maybe this could be a option you could set in the model class. Like simple log or log differences. This way this could be done case by case.


RE: Object Logging Library - MGatner - 06-30-2020

Thanks friends, really good feedback here! This module is rather old (in CI4 terms) and could definitely benefit from a fresh pass and some updated features. I will post an update soon.