monolog:
    channels:
        - deprecation # Deprecations are logged in the dedicated "deprecation" channel when it exists
        - cron
        - admin

    handlers:
        # sorties standards (stdout, stderr, console)
        stderr:
            type: stream
            path: php://stderr
            level: error
            channels: [ "!event", "!doctrine", "!cron" ]
        console:
            type: console
            process_psr_3_messages: false
            level: debug
            channels: [ "!event", "!doctrine", "!console" ]

        # logging fichier
        file_main:
            type: rotating_file
            path: "%kernel.logs_dir%/%env(LOG_FILE_NAME)%.main.log"
            level: debug
            max_files: 3
            channels: ['!security', '!doctrine', '!cron', '!event', '!deprecation', '!app']
#        file_doctrine:
#            type: rotating_file
#            path: "%kernel.logs_dir%/%env(LOG_FILE_NAME)%.doctrine.log"
#            level: debug
#            max_files: 3
#            channels: [doctrine]
        file_auth:
            type: rotating_file
            path: "%kernel.logs_dir%/%kernel.environment%.auth.log"
            level: debug
            max_files: 3
            channels: [security]
        file_depreciation:
            type: rotating_file
            path: "%kernel.logs_dir%/%kernel.environment%.deprecation.log"
            level: debug
            max_files: 3
            channels: [deprecation]

        # email en cas d'erreurs critiques, sauf erreurs 404 / 405
        #        critical:
        #            type: fingers_crossed
        #            action_level: critical
        #            excluded_http_codes: [ 404, 405 ]
        #            handler: deduplicated
        #        deduplicated:
        #            type: deduplication
        #            handler: mailer
        #        mailer:
        #            type: symfony_mailer
        #            from_email: "process@opentalent.fr"
        #            to_email: "exploitation@opentalent.fr"
        #            subject: AP2I - Critical Error Occurred
        #            level: critical
        #            formatter: monolog.formatter.html
        #            content_type: text/html

        ### --- Cron-Jobs ---
        # Log fichier (niveau debug)
        cron_file:
            type: rotating_file
            path: "%kernel.logs_dir%/%kernel.environment%.cron.log"
            level: debug
            max_files: 7
            formatter: monolog.formatter.message
            channels: ['cron']

        # Rapport par mail
        cron_info:
            type:           fingers_crossed
            action_level:   info
            handler:        cron_info_deduplicated
            channels: ['cron']
        cron_info_deduplicated:
            type: deduplication
            # the time in seconds during which duplicate entries are discarded (default: 60)
            time: 10
            handler: cron_info_mailer
        cron_info_mailer:
            type:           symfony_mailer
            from_email:     "mail.report@opentalent.fr"
            to_email:       "exploitation@opentalent.fr"
            subject:        "Cron - Execution Report"
            level:          info
            content_type:   text/html

        # Log par mail en cas d'erreur critique
        cron_critical:
            type:           fingers_crossed
            action_level:   critical
            handler:        cron_critical_deduplicated
            channels: ['cron']
        cron_critical_deduplicated:
            type: deduplication
            # the time in seconds during which duplicate entries are discarded (default: 60)
            time: 10
            handler: cron_critical_mailer
        cron_critical_mailer:
            type:           symfony_mailer
            from_email:     "mail.report@opentalent.fr"
            to_email:       "exploitation@opentalent.fr"
            subject:        "Cron - Critical Error"
            level:          critical
            formatter:      monolog.formatter.html
            content_type:   text/html

        ### --- Admin operations ---
        # Log fichier (niveau debug)
        admin_file:
            type: rotating_file
            path: "%kernel.logs_dir%/%kernel.environment%.admin.log"
            level: debug
            max_files: 7
            formatter: monolog.formatter.message
            channels: ['admin']

        # Rapport par mail
        admin_info:
            type:           fingers_crossed
            action_level:   info
            handler:        admin_info_deduplicated
            channels: ['admin']
        admin_info_deduplicated:
            type: deduplication
            # the time in seconds during which duplicate entries are discarded (default: 60)
            time: 10
            handler: admin_info_mailer
        admin_info_mailer:
            type:           symfony_mailer
            from_email:     "mail.report@opentalent.fr"
            to_email:       "exploitation@opentalent.fr"
            subject:        "Administration - Execution Report"
            level:          info
            content_type:   text/html

        # Log par mail en cas d'erreur critique
        admin_critical:
            type:           fingers_crossed
            action_level:   critical
            handler:        admin_critical_deduplicated
            channels: ['admin']
        admin_critical_deduplicated:
            type: deduplication
            # the time in seconds during which duplicate entries are discarded (default: 60)
            time: 10
            handler: admin_critical_mailer
        admin_critical_mailer:
            type:           symfony_mailer
            from_email:     "mail.report@opentalent.fr"
            to_email:       "exploitation@opentalent.fr"
            subject:        "Administration - Critical Error"
            level:          critical
            formatter:      monolog.formatter.html
            content_type:   text/html

        # uncomment to get logging in your browser
        # you may have to allow bigger header sizes in your Web server configuration
        #firephp:
        #    type: firephp
        #    level: info
        #chromephp:
        #    type: chromephp
        #    level: info
