如何记录可读性的操作日志?

Chance

我看到有几个跟日志相关的插件,但都是属于系统日志,操作日志相关的确是没有,在网上查找操作日志的资料,讲这个的文章也是很少。

《如何记录可读性的操作日志?》这篇文章是我对于记录操作日志的一些思考。

不知道大家都是如何记录操作日志的?

然后我也发布了一个生成操作日志的插件 https://www.workerman.net/plugin/96,欢迎大家下载使用。

551 5 2
5个评论

damao

我去,你这好牛逼啊,喜欢

  • 暂无评论
稚出

牛哇牛哇

  • 暂无评论
周小云

\Illuminate\Database\Connection::resolverFor('mysql', function ($connection, $database, $prefix, $config) {
return new \Chance\Log\orm\illuminate\MySqlConnection($connection, $database, $prefix, $config);
});
这代码写在哪里

  • Chance 2022-10-26

    你可以自定义一个Bootstrap:

    <?php
    
    namespace app\bootstrap;
    
    use Chance\Log\orm\illuminate\MySqlConnection;
    use Illuminate\Database\Connection;
    use Webman\Bootstrap;
    
    class Log implements Bootstrap
    {
        public static function start($worker)
        {
            Connection::resolverFor('mysql', function ($connection, $database, $prefix, $config) {
                return new MySqlConnection($connection, $database, $prefix, $config);
            });
        }
    }

    然后在 config/bootstrap.php 配置文件中增加:app\bootstrap\Log::class

  • 周小云 2022-10-26

    感谢

周小云

我用你这个的时候 做get***TextAttribute 修改监听到了 但是 原始值跟修改的值在log里面会一样
修改 商品 (id:1591):品牌由:宇时代 改为:宇时代;

public function getGoodsBrandIdTextAttribute($key): string
{
    var_dump($key);
    return $this->goodsBrand->name;
}

截图
这个是我打印出来的$key的值
goodsBrand 是我商品跟商品品牌的关系

  • Chance 2022-10-31

    获取原始值你要对传入的key进行处理

  • 周小云 2022-11-01

    我想对原始值进行处理 但是 打出来是个null 修改后的值是有的

  • 周小云 2022-11-01

    我今天看了你的源码 看你用了getOriginal 但是好像 getOriginal() is not working in laravel 8 不知道是不是这个原因

  • Chance 2022-11-01

    Laravel8也是有这个方法的 那个39不是吗?

  • 周小云 2022-11-01

    那我在看下 不知道为啥会有两个null

周小云

加个建议 没有在$columnComment的字段不记录就好了

  • Chance 22天前

    感谢建议 可以在模型中通过 $ignoreLogFields 设置不记录日志的字段

Chance

220
积分
0
获赞数
0
粉丝数
2022-07-13 加入
🔝