Download the PHP package understand/understand-laravel without Composer
On this page you can find all versions of the php package understand/understand-laravel. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download understand/understand-laravel
More information about understand/understand-laravel
Files in understand/understand-laravel
Package understand-laravel
Short Description Laravel 5, 6, 7, 8, 9 and 10 service provider for Understand.io
License MIT
Informations about the package understand-laravel
Laravel 5, 6, 7, 8, 9 and 10 integration for Understand.io
Introduction
This packages provides a full abstraction for Understand.io and provides extra features to improve Laravel's default logging capabilities. It is essentially a wrapper around Laravel's event handler to take full advantage of Understand.io's data aggregation and analysis capabilities.
Quick start
-
Add the package to your project
-
Add the ServiceProvider to the
providers
array inconfig/app.php
-
Set your Understand.io input token in your
.env
file - Send your first error
- We recommend that you make use of a async handler - How to send data asynchronously
- If you are using Laravel 5.0 (
>= 5.0, < 5.1
) version, please read about - How to report Laravel 5.0 exceptions. - For advanced configuration please read about - Advanced configuration
- JavaScript Error Tracking for Laravel - Understand.io JavaScript library
How to send events/logs
Laravel logs
By default, Laravel automatically stores its logs in storage/logs
. By using this package, your log data will also be sent to your Understand.io channel. This includes error and exception logs, as well as any log events that you have defined (for example, Log::info('my custom log')
).
PHP/Laravel exceptions
By default, all errors and exceptions with code fragments and stack traces will be sent to Understand.io.
The following extra information will be collected:
Type | Default | Config Key | Config Options |
---|---|---|---|
SQL queries | Enabled | UNDERSTAND_SQL= |
true or false |
SQL query values/bindings | Disabled | UNDERSTAND_SQL_BINDINGS= |
true or false |
HTTP request query string data | Enabled | UNDERSTAND_QUERY_STRING= |
true or false |
HTTP request form or JSON data | Enabled | UNDERSTAND_POST_DATA= |
true or false |
Additionally, you can specify which HTTP request field values should not be sent to Understand.io. By default, the following field values will be hidden:
If you wish you can publish the configuration file and make desired adjustments. See Advanced configuration
How to send data asynchronously
Async handler
By default each log event will be sent to Understand.io's api server directly after the event happens. If you generate a large number of logs, this could slow your app down and, in these scenarios, we recommend that you make use of an async handler. To do this, set the config parameter UNDERSTAND_HANDLER
to async
in your .env
file.
The async handler is supported in most systems - the only requirement is that the CURL command line tool is installed and functioning correctly. To check whether CURL is available on your system, execute following command in your console:
If you see instructions on how to use CURL then your system has the CURL binary installed and you can use the handler.
Keep in mind that Laravel allows you to specify different configuration values in different environments. You could, for example, use the async handler in production and the sync handler in development.
How to report Laravel 5.0 (>= 5.0, < 5.1
) exceptions
Laravel's (>= 5.0, < 5.1
) exception logger doesn't use event dispatcher (https://github.com/laravel/framework/pull/10922) and that's why you need to add the following line to your Handler.php
file (otherwise Laravel's exceptions will not be sent Understand.io).
- Open
app/Exceptions/Handler.php
and put this line\UnderstandExceptionLogger::log($e)
insidereport
method.
Advanced Configuration
- Publish configuration file
Log Filter
To filter out specific log types a custom log filter can be provided.
Example filter class
and then it can be configured in understand-laravel.php
The log_filter
config value must be a callable type:
- https://www.php.net/manual/en/function.is-callable.php
or a callable dependency from the service container: - https://laravel.com/docs/9.x/container#the-make-method
The suggested way would be to create an invokable class since it's hard to serialise anonymous functions (Laravel config cache):
The log filter interface must be as follows: $callable($level, $message, $context)
.
The result of the filter must be a boolean value:
TRUE
, the log should be ignored and NOT delivered to Understand.ioFALSE
, the log should be delivered to Understand.io
The ignored_logs
config value has higher precedence than log_filter
.
Requirements
UTF-8
This package uses the json_encode function, which only supports UTF-8 data, and you should therefore ensure that all of your data is correctly encoded. In the event that your log data contains non UTF-8 strings, then the json_encode function will not be able to serialize the data.
http://php.net/manual/en/function.json-encode.php
License
The Laravel Understand.io service provider is open-sourced software licensed under the MIT license
All versions of understand-laravel with dependencies
ext-curl Version *
illuminate/support Version ^5.0 || ^6.0 || ^7.0 || ^8.0 || ^9.0 || ^10.0