dnj/laravel-error-tracker-server

v1.0.1 2023-04-13 02:05 UTC

This package is auto-updated.

Last update: 2024-09-13 04:59:29 UTC


README

Packagist Dependency Version GitHub all releases GitHub GitHub Workflow Status

简介

此包专门为 laravel 错误跟踪构建。

安装

使用 composer 需求此包。

composer require dnj/laravel-error-tracker-server

Laravel 使用包自动发现,因此不需要您手动添加 ServiceProvider。

使用发布命令将包配置复制到您的本地配置

php artisan vendor:publish --provider="dnj\ErrorTracker\Laravel\Server\ServiceProvider"

配置文件

<?php

return [
    // Define your user model class for connect entities to users.
    'user_model' => \dnj\AAA\Models\User::class,

    'routes' => [
        'enable' => true,
        'prefix' => 'log', // example: log, device, etc ... , 
    ],
];

ℹ️ 注意

用户活动日志默认是 禁用 的,如果您想保存它们,请将 $userActivityLog 设置为 true。

示例

use dnj\ErrorTracker\Contracts\IAppManager;
use dnj\ErrorTracker\Contracts\IDeviceManager;
use dnj\ErrorTracker\Contracts\ILogManager;
use dnj\ErrorTracker\Contracts\LogLevel;

$appManager = app(IAppManager::class);

$app = $appManager->store(
  title: 'Android mobile app',
  owner: 1,
  meta: ['key' => 'value']),
  userActivityLog: false,
);

$deviceManager = app(IDeviceManager::class);

$device = $deviceManager->store(
  title: 'Nokia mobile',
  owner: 1,
  meta: ['serialNo' => 44514526985]),
  userActivityLog: false,
);


$logManager = app(ILogManager::class);

$log = $logManager->store(
  app: $app,
  device: $device,
  level: LogLevel::INFO,
  message: 'App just installed',
  data: ['version' => "1.0.0"]
);

与应用程序协同工作

  • 搜索应用程序
use dnj\ErrorTracker\Contracts\IAppManager;

$appManager = app(IAppManager::class);

$apps = $appManager->search(
  filters: [
    'title' => 'mobile app'
    'owner' => 2
  ],
);
  • 创建新应用程序
use dnj\ErrorTracker\Contracts\IAppManager;

$appManager = app(IAppManager::class);

$app = $appManager->store(
  title: 'Android mobile app',
  owner: 1,
  meta: ['key' => 'value']),
  userActivityLog: false,
); 
  • 更新应用程序
use dnj\ErrorTracker\Contracts\IAppManager;

$appManager = app(IAppManager::class);

$app = $appManager->update(
  app: 1,
  changes: [
    'title' => 'new title',
    'owner' => 2,
  ],
  userActivityLog: true,
); 
  • 删除应用程序
use dnj\ErrorTracker\Contracts\IAppManager;

$appManager = app(IAppManager::class);

$appManager->destroy(
  log: 1,
  userActivityLog: false,
);

与设备协同工作

  • 搜索设备
use dnj\ErrorTracker\Contracts\IDeviceManager;

$deviceManager = app(IDeviceManager::class);

$devices = $deviceManager->search(
  filters: [
    'title' => 'Nokia Mobile'
    'owner' => 2
  ],
);
  • 创建新设备
use dnj\ErrorTracker\Contracts\IDeviceManager;

$deviceManager = app(IDeviceManager::class);

$device = $deviceManager->store(
  title: 'Nokia mobile',
  owner: 1,
  meta: ['key' => 'value']),
  userActivityLog: false,
); 
  • 更新设备
use dnj\ErrorTracker\Contracts\IDeviceManager;

$deviceManager = app(IDeviceManager::class);

$device = $deviceManager->update(
  device: 3,
  changes: [
    'title' => 'My Nokia Mobile',
    'owner' => 2,
    'meta' => ['serialNo' => 55245252]
  ],
  userActivityLog: true,
); 
  • 删除应用程序
use dnj\ErrorTracker\Contracts\IDeviceManager;

$deviceManager = app(IDeviceManager::class);

$deviceManager->destroy(
  log: 3,
  userActivityLog: false,
);

与日志协同工作

  • 搜索设备
use dnj\ErrorTracker\Contracts\ILogManager;
use dnj\ErrorTracker\Contracts\LogLevel;

$logManager = app(ILogManager::class);

$logs = $logManager->search(
  filters: [
    'apps' => [1,2],
    'devices' => [1],
    'levels' => [LogLevel::DEBUG],
    'message' => 'important flag',
    'unread' => true,
  ]
);
  • 创建新日志
use dnj\ErrorTracker\Contracts\ILogManager;
use dnj\ErrorTracker\Contracts\LogLevel;

$logManager = app(ILogManager::class);

$log = $logManager->store(
  app: 1,
  device: 1,
  level: LogLevel::INFO,
  message: 'App has been started',
);
  • 标记为已读日志
use dnj\ErrorTracker\Contracts\ILogManager;
use dnj\ErrorTracker\Contracts\LogLevel;

$logManager = app(ILogManager::class);

$log = $logManager->markAsRead(
  log: 44,
  user: 3
);
  • 标记为未读日志
use dnj\ErrorTracker\Contracts\ILogManager;
use dnj\ErrorTracker\Contracts\LogLevel;

$logManager = app(ILogManager::class);

$log = $logManager->markAsUnread(
  log: 44,
);
  • 删除日志
use dnj\ErrorTracker\Contracts\ILogManager;

$logManager = app(ILogManager::class);

$logManager->destroy(
  log: 44,
  userActivityLog: true,
);

测试

您可以使用 PHP Unit 运行单元测试

./vendor/bin/phpunit

贡献

贡献使开源社区成为一个如此神奇的地方,可以学习、灵感和创造。您所做的任何贡献都将受到极大的赞赏。

如果您有任何改进的建议,请 fork 存储库并创建一个拉取请求。您也可以简单地打开一个带有“增强”标签的问题。别忘了给项目加星!再次感谢!

  1. fork 项目
  2. 创建您的功能分支(git checkout -b feature/AmazingFeature
  3. 提交您的更改(git commit -m 'Add some AmazingFeature'
  4. 将更改推送到分支(git push origin feature/AmazingFeature
  5. 打开拉取请求

安全性

如果您发现任何与安全性相关的问题,请通过电子邮件 security@dnj.co.ir 而不是使用问题跟踪器。

许可证

MIT 许可证(MIT)。有关更多信息,请参阅许可证文件