欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

活动日志 记录操作日志 操作的日志 spatie/activitylog activitylog 记录 用户发布文章 更新文章 的功能 我自己亲自用的方法 有大用

/activitylog


A very simple activity logger to monitor the users of your website or application 

PHP
 
Upload filesFind file
New pull request
Latest commit d333d1a on 29 Jul 2016@freekmurze freekmurze committed on GitHub Update README.md

 README.md

Log the activity of your users

Latest Version Software License Build Status SensioLabsInsight Total Downloads

EOL-warning

This package has been abandoned on 2016-06-28. Please use laravel-activitylog instead.

Description

This Laravel 5 package provides a very easy to use solution to log the activities of the users of your Laravel 5 app. All the activities will be logged in a db-table. Optionally the activities can also be logged against the default Laravel Log Handler.

Spatie is a webdesign agency in Antwerp, Belgium. You'll find an overview of all our open source projects on our website.

Note:

If you're using Laravel 4, take a look at version 0.3.0 of this package.

Postcardware

You're free to use this package (it's MIT-licensed), but if it makes it to your production environment you are required to send us a postcard from your hometown, mentioning which of our package(s) you are using.

Our address is: Spatie, Samberstraat 69D, 2060 Antwerp, Belgium.

The best postcards will get published on the open source page on our website.

Installation

This package can be installed through Composer.

composer require spatie/activitylog

This service provider must be registered.

// config/app.php

'providers' => [
    '...',
    'Spatie\Activitylog\ActivitylogServiceProvider',
];

You'll also need to publish and run the migration in order to create the db-table.

php artisan vendor:publish --provider="Spatie\Activitylog\ActivitylogServiceProvider" --tag="migrations"
php artisan migrate

Activitylog also comes with a facade, which provides an easy way to call it.

// config/app.php

'aliases' => [
...
'Activity' => 'Spatie\Activitylog\ActivitylogFacade',
];

Optionally you can publish the config file of this package.

php artisan vendor:publish --provider="Spatie\Activitylog\ActivitylogServiceProvider" --tag="config"

The configuration will be written to config/activitylog.php. The options provided are self explanatory.

Usage

Manual logging

Logging some activity is very simple.

//at the top of your file you should import the facade.
use Activity;
...
/*
  The log-function takes two parameters:
  	- $text: the activity you wish to log.
  	- $user: optional can be an user id or a user object.
  	         if not proved the id of Auth::user() will be used

*/
Activity::log('Some activity that you wish to log');

The string you pass to function gets written in a db-table together with a timestamp, the ip address and the user agent of the user.

Log model events

This package can log the events from your models. To do so your model must use the LogsActivity-trait and implement LogsActivityInterface.

use Spatie\Activitylog\LogsActivityInterface;
use Spatie\Activitylog\LogsActivity;

class Article implements LogsActivityInterface {

   use LogsActivity;
...

The interface expects you to implement the getActivityDescriptionForEvent-function.

Here's an example of a possible implementation.

/**
 * Get the message that needs to be logged for the given event name.
 *
 * @param string $eventName
 * @return string
 */
public function getActivityDescriptionForEvent($eventName)
{
    if ($eventName == 'created')
    {
        return 'Article "' . $this->name . '" was created';
    }

    if ($eventName == 'updated')
    {
        return 'Article "' . $this->name . '" was updated';
    }

    if ($eventName == 'deleted')
    {
        return 'Article "' . $this->name . '" was deleted';
    }

    return '';
}

The result of this function will be logged, unless the result is an empty string.

Using a before handler.

If you want to disable logging under certain conditions, such as for a specific user, create a class in your application namespace that implements the Spatie\Activitylog\Handlers\BeforeHandlerInterface.

This interface defines an shouldLog() method in which you can code any custom logic to determine whether logging should be ignored or not. You must return true the call should be logged.

To en the namespaced class nameto the beforeHandler field in the configuration file:

'beforeHandler' => '\App\Handlers\BeforeHandler',

For example, this callback class could look like this to disable logging a user with id of 1:

<?php

namespace App\Handlers;

use Spatie\Activitylog\Handlers\BeforeHandlerInterface;

class BeforeHandler implements BeforeHandlerInterface
{
    public function shouldLog($text, $userId)
	{
if ($userId == 1) return false;

return true;
	}
}

Retrieving logged entries

All events will be logged in the activity_log-table. This package provides an Eloquent model to work with the table. You can use all the normal Eloquent methods that you know and love. Here's how you can get the last 100 activities together with the associated users.

use Spatie\Activitylog\Models\Activity;

$latestActivities = Activity::with('user')->latest()->limit(100)->get();

Cleaning up the log

Over time your log will grow. To clean up the database table you can run this command:

Activity::cleanLog();

By default records older than 2 months will be deleted. The number of months can be modified in the config-file of the package.

Contributing

Please see CONTRIBUTING for details.

Security

If you discover any security related issues, please email freek@spatie.be instead of using the issue tracker.

Credits

About Spatie

Spatie is a webdesign agency in Antwerp, Belgium. You'll find an overview of all our open source projects on our website.

License

The MIT License (MIT). Please see License File for more information.

来自  https://github.com/spatie/activitylog


一个非常简单的活动记录器来监控您的网站或应用程序的用户 
PHP
 
上传文件查找文件
新拉请求
最新提交 d333d1a on 29 Jul 2016@freekmurze freekmurze 承诺在GitHub 更新README.md

 README.md

记录您的用户的活动

Latest Version Software License Build Status SensioLabsInsight Total Downloads

EOL预警

这个包已经在2016-6-28放弃了。请改用laravel-activitylog

描述

这个Laravel 5软件包提供了一个非常易于使用的解决方案来记录您的Laravel 5应用程序的用户的活动。所有的活动都将记录在一个数据库表中。也可以根据默认的Laravel Log Handler记录活动。

Spatie是比利时安特卫普的网页设计公司。您将在我们的网站上找到我们所有开源项目的概述

注意:

如果您使用Laravel 4,请查看此软件包的0.3.0版本。

明信片软件

您可以自由使用这个软件包(它是MIT许可的),但如果它使您的生产环境,您需要从您的家乡向我们发送明信片,提及您正在使用我们的软件包。

我们的地址是:Spatie,Samberstraat 69D,2060安特卫普,比利时。

最好的明信片将在我们网站的开源页面上发布。

安装

该软件包可以通过Composer安装。

作曲家需要透视/活动日志

该服务提供商必须注册。

// config / app.php

' providers '  => [
 ' ... ' ' Spatie \ Activitylog \ ActivitylogServiceProvider '];    
    

您还需要发布和运行迁移以创建数据库表。

php artisan vendor:publish --provider="Spatie\Activitylog\ActivitylogServiceProvider" --tag="migrations"
php artisan migrate

活动记录还附有一个立面,它提供了一种简单的方法来调用它。

// config / app.php

' aliases '  => [
 ... ' Activity ' => ' Spatie \ Activitylog \ ActivitylogFacade '];
	  

或者,您可以发布此包的配置文件。

php artisan vendor:publish --provider="Spatie\Activitylog\ActivitylogServiceProvider" --tag="config"

配置将被写入 config/activitylog.php提供的选项是自解释的。

用法

手动记录

记录一些活动非常简单。

//在文件的顶部,您应该导入立面。
使用 活动 ; 
... 
/ *
   日志功能有两个参数:
  	-  $ text:你要记录的活动。
  	-  $ user:可选可以是用户标识或用户对象。
  	         如果没有证明,将使用Auth :: user()的id

* /
 Activity :: log( '您想要记录某些活动);

您传递给函数的字符串将与数据库表一起写入时间戳,用户的IP地址和用户代理。

对数模型事件

该软件包可以记录模型中的事件。为此,您的模型必须使用LogsActivity-trait并实现LogsActivityInterface

使用 Spatie \ Activitylog \ LogsActivityInterface ; 
使用 Spatie \ Activitylog \ LogsActivity ;

 文章 实现 LogsActivityInterface {

   使用 LogsActivity ; 
...

该接口希望您实现该getActivityDescriptionForEvent功能。

这是一个可能的实现的例子。

/ **
 *获取给定事件名称需要记录的消息。
* 
* @参数字符串$ eventName的
* @返回字符串
* /公共职能getActivityDescriptionForEvent $ eventName的{如果 $ eventName的== '创建'    {回报'文章“ ' $本- > 名字' ”被创造' ;     } 
  

      

             


    如果$ eventName的 ==  '更新'
    { 
回报'文章“ ' $本- > 名字' ”被更新' ;     }             


    如果$ eventName的 ==  '删除'
    { 
回报'文章“ ' $本- > 名字' ”已删除' ;     }             


    返回  ; 
}

将记录此功能的结果,除非结果为空字符串。

使用前一个处理程序。

如果要在某些条件下禁用日志记录,例如对于特定用户,请在实现该应用程序的应用程序命名空间中创建一个类Spatie\Activitylog\Handlers\BeforeHandlerInterface

该界面定义了一种shouldLog()方法,您可以在其中编写任何自定义逻辑,以确定是否应忽略日志记录。你必须返回true应该记录的通话。

要在命名空间的类名beforeHandler中添加配置文件中字段:

' beforeHandler '  =>  ' \ App \ Handlers \ BeforeHandler '

例如,这个回调类可能看起来像这样可以禁用对ID为1的用户记录:

<?PHP

命名空间 App \ Handlers ;

使用 Spatie \ Activitylog \ Handlers \ BeforeHandlerInterface ;

 BeforeHandler  实现 BeforeHandlerInterface
 { 
public function shouldLog$ text$ userId	{ if$ userId == 1return false ;      

		   

返回  ; 
	} 
}

检索记录的条目

所有事件都将被记录在activity_log-table中。该包提供了一个演绎模型来处理表格。你可以使用你所知道和爱的所有正常的雄辩方法。以下是与相关用户一起获取最后100个活动的方法。

使用 Spatie \ Activitylog \ Models \ Activity ;

$ latestActivities  =  Activity :: with(' user '- > latest()- > limit(100- > get();

清理日志

随着时间的推移,您的日志会增长 要清理数据库表,您可以运行此命令:

Activity :: cleanLog();

默认情况下,超过2个月的记录将被删除。可以在包的配置文件中修改月数。

特约

详情请参阅贡献

安全

如果您发现任何安全相关问题,请发送电子邮件至freek@spatie.be,而不是使用问题跟踪器。

积分

关于Spatie

Spatie是比利时安特卫普的网页设计公司。您将在我们的网站上找到我们所有开源项目的概述

执照

麻省理工学院许可证(MIT)。有关详细信息,请参阅许可证文件

来自 https://github.com/spatie/activitylog

普通分类: