Seldaek / monolog

Sends your logs to files, sockets, inboxes, databases and various web services

Home Page:https://seldaek.github.io/monolog/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Remove ctxt_ from contentPrefix

dwalczyk opened this issue · comments

Monolog version 2

How can i remove or replace default contentPrefix from GelfMessageFormatter ?

public function __construct(?string $systemName = null, ?string $extraPrefix = null, string $contextPrefix = 'ctxt_', ?int $maxLength = null)
    {
        parent::__construct('U.u');

        $this->systemName = (is_null($systemName) || $systemName === '') ? gethostname() : $systemName;

        $this->extraPrefix = is_null($extraPrefix) ? '' : $extraPrefix;
        $this->contextPrefix = $contextPrefix;
        $this->maxLength = is_null($maxLength) ? self::DEFAULT_MAX_LENGTH : $maxLength;
    }

I'm using symfony monolog bundle

monolog.yaml

graylog:
            type: service
            id: monolog.gelf_handler
            level: debug
            channels: ["graylog"]

services.yaml

monolog.gelf_handler:
        class: Monolog\Handler\GelfHandler
        arguments:
            - '@gelf.publisher'
            - 'warning' #monolog config is ignored with custom service level has to be redefined here (default : debug), you should probably use parameters eg: '%gelf_level%'

    gelf.publisher:
        class: Gelf\Publisher
        arguments: [ '@gelf.ignore_error_transport' ]

    gelf.ignore_error_transport:
        class: Gelf\Transport\IgnoreErrorTransportWrapper
        arguments: [ '@gelf.transport' ]

    gelf.transport:
        class: Gelf\Transport\UdpTransport # or Tcp, Amp, Http,...
        arguments: ['xxx', 12201] # ... whatever is required

I think smth like this should do:

    monolog.gelf_handler:
        class: Monolog\Handler\GelfHandler
        arguments:
            - '@gelf.publisher'
            - 'warning' #monolog config is ignored with custom service level has to be redefined here (default : debug), you should probably use parameters eg: '%gelf_level%'
        calls:
            - setFormatter: [ '@gelf.formatter' ]

    gelf.formatter:
        class: Monolog\Formatter\GelfMessageFormatter
        arguments: [ '@gelf.ignore_error_transport' ]
    
    gelf.publisher:
        class: Gelf\Publisher
        arguments: [ null, null, '' ]

    gelf.ignore_error_transport:
        class: Gelf\Transport\IgnoreErrorTransportWrapper
        arguments: [ '@gelf.transport' ]

    gelf.transport:
        class: Gelf\Transport\UdpTransport # or Tcp, Amp, Http,...
        arguments: ['xxx', 12201] # ... whatever is required