Logging activity | laravel-activitylog | Spatie

 SPATIE

  Laravel Activity Log
=======================

spatie.be/open-source

  [Docs](https://spatie.be/docs)  [Laravel-activitylog](https://spatie.be/docs/laravel-activitylog/v1)  Basic-usage  Logging activity

 Version   v5   v4   v3   v2   v1

 Other versions for crawler [v5](https://spatie.be/docs/laravel-activitylog/v5) [v4](https://spatie.be/docs/laravel-activitylog/v4) [v3](https://spatie.be/docs/laravel-activitylog/v3) [v2](https://spatie.be/docs/laravel-activitylog/v2) [v1](https://spatie.be/docs/laravel-activitylog/v1)

  Logging activity
- [ Introduction ](https://spatie.be/docs/laravel-activitylog/v1/introduction)
- [ Postcardware ](https://spatie.be/docs/laravel-activitylog/v1/postcardware)
- [ Requirements ](https://spatie.be/docs/laravel-activitylog/v1/requirements)
- [ Installation and Setup ](https://spatie.be/docs/laravel-activitylog/v1/installation-and-setup)
- [ Questions and issues ](https://spatie.be/docs/laravel-activitylog/v1/questions-and-issues)
- [ Changelog ](https://spatie.be/docs/laravel-activitylog/v1/changelog)
- [ About us ](https://spatie.be/docs/laravel-activitylog/v1/about-us)

Basic usage
-----------

- [ Logging activity ](https://spatie.be/docs/laravel-activitylog/v1/basic-usage/logging-activity)
- [ Cleaning up the log ](https://spatie.be/docs/laravel-activitylog/v1/basic-usage/cleaning-up-the-log)

Advanced usage
--------------

- [ Logging model events ](https://spatie.be/docs/laravel-activitylog/v1/advanced-usage/logging-model-events)
- [ Using placeholders ](https://spatie.be/docs/laravel-activitylog/v1/advanced-usage/using-placeholders)
- [ Using multiple logs ](https://spatie.be/docs/laravel-activitylog/v1/advanced-usage/using-multiple-logs)

      You are viewing the documentation for **an older version** of this package. You can check the version you are using with the following command:

 `                                    composer show spatie/laravel-activitylog                                                                                                                                                                                                                                    `

Logging activity
================

###  On this page

1. [ Description ](#content-description)
2. [ Setting a subject ](#content-setting-a-subject)
3. [ Setting a causer ](#content-setting-a-causer)
4. [ Setting custom properties ](#content-setting-custom-properties)

Description
-----------------------------------------------------------------------------------------

This is the most basic way to log activity:

```
activity()->log('Look mum, I logged something');
```

You can retrieve the activity using the `Spatie\Activitylog\Models\Activity` model.

```
$lastActivity = Activity::all()->last(); //returns the last logged activity

$lastActivity->description; //returns 'Look mum, I logged something';
```

Setting a subject
-----------------------------------------------------------------------------------------------------------

You can specify on which object the activity is performed by using `performedOn`:

```
activity()
   ->performedOn($someContentModel)
   ->log('edited');

$lastActivity = Activity::all()->last(); //returns the last logged activity

$lastActivity->subject; //returns the model that was passed to `performedOn`;
```

The `performedOn`-function has a shorter alias name: `on`

Setting a causer
--------------------------------------------------------------------------------------------------------

You can set who or what caused the activity by using `causedBy`:

```
activity()
   ->causedBy($userModel)
   ->performedOn($someContentModel)
   ->log('edited');

$lastActivity = Activity::all()->last(); //returns the last logged activity

$lastActivity->causer; //returns the model that was passed to `causedBy`;
```

The `causedBy()`-function has a shorter alias named: `by`

If you're not using `causedBy` the package will automatically use the logged in user.

Setting custom properties
-----------------------------------------------------------------------------------------------------------------------------------

You can add any property you want to an activity by using `withProperties`

```
activity()
   ->causedBy($userModel)
   ->performedOn($someContentModel)
   ->withProperties(['key' => 'value'])
   ->log('edited');

$lastActivity = Activity::all()->last(); //returns the last logged activity

$lastActivity->getExtraProperty('key') //returns 'value';
```

 A good
match?
-------------

### What we do best

- All things Laravel
- Custom frontend components
- Building APIs
- AI-powered features
- Simplifying things
- Clean solutions
- Integrating services

### Not our cup of tea

- WordPress themes
- Cutting corners
- Free mockups to win a job
- "Just execute the briefing"

 In short: we'd like to be a **substantial part** of your project.

 [ Get in touch via email ](mailto:info@spatie.be?subject=A%20good%20match%21&body=Tell%20us%20as%20much%20as%20you%20can%20about%0A-%20your%20online%20project%0A-%20your%20planning%0A-%20your%20budget%0A-%20%E2%80%A6%0A%0AAnything%20that%20helps%20us%20to%20start%20straightforward%21)
