Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What is the correct configuration for Monolog / Swiftmailer Html Formatter in Symonfy2?

I'm having trouble setting up Monolog to use Swiftmailer and the Html formatter. I have multiple monolog handlers and swiftmail mailers which might be the issue. Here's my config.yml

Monolog section:

services:
    monolog.formatter.html:
        class: Monolog\Formatter\HtmlFormatter


monolog:

    channels: ["orders", "support"]

    handlers:

        # Called
        orders:
            type:  stream
            path:  "%kernel.logs_dir%/%kernel.environment%_orders.log"
            level: info
            channels: orders

        # Called
        support:
            type: fingers_crossed
            action_level: critical
            handler: support_grouped
            channels: support

        # Not called, referenced in a handler [support]
        support_grouped:
            type: group
            members: [support_log, environment_log, support_buffered]

        # Not called, referenced in a group handler [grouped_support]
        support_buffered:
            type: buffer
            handler: support_buffered_grouped

        # Not called, referenced in a handler [support_buffered]
        support_buffered_grouped:
            type: group
            members: [hipchat, webmaster_email, support_email]

        # Not called, referenced in a group handler [support_buffered_grouped]
        support_email:
            type: swift_mailer
            mailer: swiftmailer.mailer.errors
            from_email: %webmaster_email_address%
            to_email:   %support_email_address%
            subject:    '[Costimator] Support: An Error Occurred!'
            level: debug
            content_type: text/html
            formatter: monolog.formatter.html

        # Called
        webmaster:
            type: fingers_crossed
            action_level: critical
            handler: webmaster_grouped

        # Not called, referenced in a handler [webmaster]
        webmaster_grouped:
            type: group
            members: [environment_log, webmaster_buffered]

        # Not called, referenced in a handler [webmaster_grouped]
        webmaster_buffered:
            type: buffer
            handler: webmaster_buffered_grouped

        # Not called, referenced in a handler [webmaster_buffered_grouped]
        webmaster_buffered_grouped:
            type: group
            members: [hipchat, webmaster_email]

        # Not called, referenced in a group handler [webmaster_buffered_grouped, support_buffered_grouped]
        webmaster_email:
            type:       swift_mailer
            mailer: swiftmailer.mailer.errors
            content_type: text/html
            from_email: %webmaster_email_address%
            to_email:   %webmaster_email_address%
            subject:    '[Costimator] An Error Occurred!'
            level: debug
            formatter: monolog.formatter.html

        # Not called, referenced in a group handler [support_grouped, webmaster_grouped]
        environment_log:
            type:  stream
            path:  "%kernel.logs_dir%/%kernel.environment%.log"
            level: debug

        # Not called, referenced in a group handler [support_grouped, webmaster_grouped]
        support_log:
            type:  stream
            path:  "%kernel.logs_dir%/%kernel.environment%.support_log"
            level: debug

        # Not called, referenced in a group handler [webmaster_buffered_grouped, support_buffered_grouped]
        hipchat:
            type:  hipchat
            notify: true
            token: xxx
            room: xxx
            level: critical

Swiftmailer section:

# Swiftmailer Configuration
swiftmailer:
    default_mailer: %mailer_default_config%
    mailers:
        default:
            delivery_address: "%mailer_delivery_address%"
            transport: "%mailer_transport%"
            host:      "%mailer_host%"
            username:  "%mailer_user%"
            password:  "%mailer_password%"
            spool:
                type: "%mailer_spool_type%"
                path: "%kernel.root_dir%/spool"

        errors:
            delivery_address: "%mailer_errors_delivery_address%"
            transport: "%mailer_errors_transport%"
            host:      "%mailer_errors_host%"
            username:  "%mailer_errors_user%"
            password:  "%mailer_errors_password%"
            spool:
                type: "%mailer_errors_spool_type%"
                path: "%kernel.root_dir%/spool"

Errors are being sent as text/html but without the table formatting. Any ideas?

// Ping @seldaek

Edit Formatters seem to be set on the handlers:

formatters set on handlers

like image 930
Leevi Graham Avatar asked Feb 22 '14 03:02

Leevi Graham


1 Answers

The configuration above actually works correctly. Not sure what was going on.

Leaving this here for anyone else who wants to implement HTML formatting.

like image 193
Leevi Graham Avatar answered Oct 04 '22 12:10

Leevi Graham