gamma / api-logger-bundle
provides tools for REST API requests logging and profoiling
Installs: 46 566
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 2
Forks: 3
Open Issues: 0
Type:symfony-bundle
Requires
- php: >=5.3
- symfony/framework-bundle: ~2.3|~3.0|~4.0
Requires (Dev)
- memio/spec-gen: ^0.4
- phpspec/phpspec: ^2.5
This package is not auto-updated.
Last update: 2025-01-02 04:03:35 UTC
README
##About
SmartGamma Symfony2 REST API Logger bundle is a tool that we use to create SmartGamma Symfony2 REST APIs.It enables detailed logging (possible to separate log) for incomming calls for APIs and tracks the duration, requests and responses body. As additional feature, it allows to profile your APIs and tracks slow API calls.
##Installation
- Using Composer
composer require gamma/api-logger-bundle
Now, Composer will automatically download all required files, and install them for you. All that is left to do is to update your AppKernel.php file, and register the new bundle:
<?php // in AppKernel::registerBundles() $bundles = array( // ... new Gamma\ApiLoggerBundle\GammaApiLoggerBundle(), // ... );
##Configuration
By default the bundle is enabled and slow API call limit is 1000ms. To chage these settings either add to your parameters.yml
// parameters.yml
gamma_logger_enabled: true
gamma_logger_slow_time_limit: 1000
or add to config.yml
// config_dev.yml
parameters:
gamma_logger_enabled: true
gamma_logger_slow_time_limit: 500
// config_prod.yml
parameters:
gamma_logger_enabled: false
##Usage
Once the bundle was enabled, it will start to make logging all requests that have prefix "/api/" in URI to the log as shown on the sample
All API calls will be logged with "info" level. API calls that will take more then "gamma_logger_slow_time_limit" value will be logged with "error" level
Logging to separate log file
In order to have API calls logged in separate files, you can use follow monolog configuration:
// config.yml
monolog:
handlers:
main:
type: fingers_crossed
action_level: error
handler: nested
channels: ["!api", "!api_slow"]
api:
type: stream
path: %kernel.logs_dir%/%kernel.environment%.api.watch.log
#level: info
channels: ["api"]
api_slow:
type: stream
path: %kernel.logs_dir%/%kernel.environment%.api.slow.log
level: info
channels: ["api_slow"]
##TODO
- make hardcoded prefix "/api/" configurable