定制 pico-inno/simplelog 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

pico-inno/simplelog

最新稳定版本:1.1.6

Composer 安装命令:

composer require pico-inno/simplelog

包简介

For record logs for every activities

README 文档

README

Usage

Use the trait SimpleLog trait in the model to start logging. You must add a method getLogOptions in order to config the setting for logging for current model.

use PicoInno\SimpleLog\Trait\SimpleLog;

class ExampleClass extends Model {

    use SimpleLog;

    public function getLogOptions(): LogOptions
    {
        return LogOptions::defaults();
    }

}

📦 Installation

Install the package via Composer:

composer require pico-inno/simplelog

⚙️ Publish Config and Migrations

After installing, publish the configuration file and migrations:

php artisan vendor:publish --provider="PicoInno\SimpleLog\SimpleLogServiceProvider" --tag=config

php artisan vendor:publish --provider="PicoInno\SimpleLog\SimpleLogServiceProvider" --tag=migrations

This will publish: config/activity_log.php

🗄️ Run the Migrations

Apply the database changes:

php artisan migrate

Log Options

The LogOptions class defines how logging should behave for a given model.

logAll()

Logs all available attributes of the model.

~ Priority - 0

public function logAll(): LogOptions;

logOnly()

Specifies which attributes should be logged.

~ Priority - highest

public function logOnly(array|string $attributes): LogOptions;

logExcept()

Excludes specific attributes from being logged. If used together with logOnly(), this will explicitly remove the specified attributes from the logging list.

~ Priority - highest

public function logExcept(array|string $attributes): LogOptions;

dontLogTimestamps()

Disables logging of the default timestamp columns (created_at and updated_at). This is useful if you do not want timestamp changes to appear in the activity log.

~ Priority: 1

public function dontLogTimestamps(): LogOptions;

logOnlyDirty()

Enables logging of only the attributes that have changed (dirty attributes) during a model update. This helps reduce unnecessary log entries by excluding unchanged attributes.

~ Priority: 3

public function logOnlyDirty(): LogOptions;

logFillable()

Restricts logging to only the attributes defined in the model’s $fillable property. This is helpful when you want to ensure that only mass-assignable attributes are logged.

~ Priority: 2

public function logFillable(): LogOptions;

Logging with Batch

LogBatch class can be used for logging the pile of model which use SimpleLog trait with a uuid batch id.

function example()
{

    LogBatch::start();

    ExampleClass::create([ // will log for 'created' event
        'foo' => 'bar'
    ]);

    ExampleClassTwo::create([ // will not log if not use 'SimpleLog' trait
        'bar' => 'foo'
    ]);

    LogBatch::end();
}

Note: LogBatch start and end methods can be used with database transaction. It is done by env value or config.

DB_TRANSACTION_ON_LOG=true

// or

'db_transaction_on_log' => env('DB_TRANSACTION_ON_LOG', false),

Use of Logging with DB transaction on

try{

    LogBatch::start();

    ExampleClass::create([ // will log for 'created' event
        'foo' => 'bar'
    ]);

    ExampleClassTwo::create([ // will not log if not use 'SimpleLog' trait
        'bar' => 'foo'
    ]);

    LogBatch::end();
}catch(\Exception $e){
    
    LogBatch::rollback();
    
}

统计信息

  • 总下载量: 46
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 1
  • 点击次数: 0
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2025-10-04