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

1

8

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

Taveras answered 22/2, 2014 at 3:44 Comment(0)
T
5

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

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

Taveras answered 22/2, 2014 at 4:36 Comment(1)
This was a big help, thank you! I didn't need to define a services entry for 'monolog.formatter.html', though, since one is already provided by vendor/symfony/monolog-bundle/Resources/config/monolog.xmlBlimey

© 2022 - 2024 — McMap. All rights reserved.