vysokeskoly/logging-bundle

Extended logging options in Symfony applications

Installs: 7 333

Dependents: 0

Suggesters: 0

Security: 0

Stars: 0

Watchers: 1

Forks: 0

Open Issues: 0

Type:symfony-bundle

9.0.0 2022-07-18 19:00 UTC

This package is auto-updated.

Last update: 2024-04-18 22:49:43 UTC


README

Latest Stable Version License Checks Build Coverage Status

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.