Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
468 views
in Technique[技术] by (71.8m points)

php - Custom monolog handler for default monolog in Symfony 2

I want to add a custom handler to a default monolog in Symfony 2.

In my config.yaml file, I have:

monolog:
    handlers:
        main:
            type:  stream
            path:  %kernel.logs_dir%/%kernel.environment%.log
            level: debug
        myHandler:
            type:  AcmeMyBundleMonologMyCustomHandler
            level: error

My class looks like below:

// AcmeMyBundleMonologMyCustomHandler
use MonologLogger;
use MonologHandlerSocketHandler;
use MonologFormatterLineFormatter;

class MyCustomHandler extends AbstractProcessingHandler
{
    ...
}

But even before I fill my class in I get an error:

invalid handler type "acmemybundlemonologmycustomhandler" given for handler "myHandler"

How do I add a custom handler to the default monolog without creating a new monolog service?

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

Try this:

monolog:
    handlers:
        main:
            type:  stream
            path:  %kernel.logs_dir%/%kernel.environment%.log
            level: debug
        custom:
            type: service
            id: my_custom_handler

services:
    my_custom_handler:
        class: AcmeMyBundleMonologMyCustomHandler

If you want to use it as default handler then you should change a bit monolog section I wrote above.

monolog:
    handlers:
        main:
            type:  stream
            path:  %kernel.logs_dir%/%kernel.environment%.log
            level: debug
            handler: custom
        custom:
            type: service
            id: my_custom_handler

I hope it helps you.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...