vysokeskoly / logging-bundle
Extended logging options in Symfony applications
Installs: 9 069
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 0
Open Issues: 0
Type:symfony-bundle
Requires
- php: ^8.1
- ext-mbstring: *
- ext-sockets: *
- graylog2/gelf-php: ^1.7
- monolog/monolog: ^3.1
- symfony/console: ^5.3 || ^6.0
- symfony/dependency-injection: ^5.3 || ^6.0
- symfony/doctrine-bridge: ^5.3 || ^6.0
- symfony/framework-bundle: ^5.3 || ^6.0
- symfony/monolog-bundle: ^3.0
- symfony/security-core: ^5.3 || ^6.0
- symfony/stopwatch: ^5.3 || ^6.0
- symfony/var-dumper: ^5.3 || ^6.0
Requires (Dev)
- ergebnis/composer-normalize: ^2.28
- php-mock/php-mock-phpunit: ^2.2
- php-parallel-lint/php-parallel-lint: ^1.3
- phpstan/extension-installer: ^1.1
- phpstan/phpstan: ^1.8
- phpstan/phpstan-phpunit: ^1.1
- phpunit/phpunit: ^9.5.20
- symfony/yaml: ^5.3 || ^6.0
README
Changelog
See CHANGELOG.md
Installation
Step 1
Install using composer
"require": { "vysokeskoly/logging-bundle" : "^9.0" },
Step 2
Add VysokeSkolyLoggingBundle to AppKernel to list of loaded bundles. Configure required parameters for bundle.
config.yml
# bundle configuration vysoke_skoly_logging: app_id: appcz #should not contain dot (.) graylog: hostname: log01 facility: app.cz doctrine_execute_time_threshold: 0 # optional, in ms, null will disable this feature # add channel monolog.logger.perflog and optionally also businesslog channel monolog: channels: ["perflog", "businesslog"]
Step 3
Configure monolog logging options.
config_prod.yml
monolog: handlers: main: type: stream path: "%kernel.logs_dir%/%kernel.environment%.log" level: notice formatter: vysokeskoly.monolog.formatter.extended channels: ["!perflog", "!businesslog"] console: type: console gelf: type: gelf level: notice publisher: vysokeskoly.monolog.handler.gelf formatter: vysokeskoly.monolog.formatter.gelf.message channels: ["!businesslog"]
Performance logging of commands
Performance logging of HTTP Requests is enabled by default, but you can also enable performance logging of your CLI commands.
You just need to make the Command you want to be performance-logged to implement PerfloggableCommandInterface
like this:
class MyGreatCommand extends Command implements PerfloggableCommandInterface { ... }
The execution time of this command will be then measured and sent to the perflog
channel with metric named
according to the name of the command.