aw-studio/logbook

dev-main / 1.x-dev 2023-04-13 08:44 UTC

This package is auto-updated.

Last update: 2024-09-13 11:42:55 UTC


README

本软件包可以帮助您跟踪Laravel应用程序在使用时发生的情况,包括异常、模型事件、入站请求等,所有这些信息都有助于理解用户如何使用应用程序,并能够相应地采取行动。

基本用法

use AwStudio\Logbook\Facades\Logbook;

class Action
{
    public function execute()
    {
        Logbook::log(['action_executed' => static::class]);
    }
}

记录模型更改

要跟踪模型上的更改,只需将LogsEvents特质添加到您的模型中

class Post extends Model
{
    use LogsEvents;
}

记录请求

class PostController extends Model
{
    public function store(Request $request) {
        Logbook::request();
    }
}

批量分组日志

使用Logbook::open()可以将多个日志分组到一个批次中。在打开批次时执行的所有日志将接收相同的唯一批次标识符和可选的批次名称

class PostController extends Model
{
    public function store(Request $request) {
        Logbook::open(); // or Logbook::open('Store new Post')
        Logbook::request();

        // Do your magic

        Logbook::close();
    }
}

记录异常

轻松跟踪应用程序中抛出的异常

// App\Exceptions
class Handler extends ExceptionHandler
{
    use LogExceptions;

    public function register(): void
    {
        $this->reportable(function (Throwable $e) {
            Logbook::exception($e);
        });
    }
}

由于Laravel不会报告所有异常,如AuthenticationExceptions、ValidationExceptions等,这个特质提供了一个属性shouldLog,您可以使用它来定义应记录的异常,即使它们没有被报告

protected $shouldLog = [
    \Illuminate\Validation\ValidationException::class,
];

记录出站邮件

// App/Providers/EventServiceProvider
class EventServiceProvider {
    use LogsOutgoingMessagesog;
    public function boot(){
        $this->logOutGoingMessages();
    }
}

当通道设置为api时,这只会将messageIDsubject记录到API中,以保持用户详情的秘密,但也会创建一个本地日志副本,其中也包含messageID,以便更好地跟踪。

使用API通道

默认情况下,此软件包提供了两个不同的通道fileapi。当使用API通道时,日志将被发送到中央Logbook API。为此,您需要在.env文件中提供LOGBOOK_PROJEKT_TOKEN