[GH-ISSUE #1509] Remove ctxt_ from contentPrefix #641

Closed
opened 2026-03-04 02:16:37 +03:00 by kerem · 1 comment
Owner

Originally created by @dwalck on GitHub (Nov 4, 2020).
Original GitHub issue: https://github.com/Seldaek/monolog/issues/1509

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
Originally created by @dwalck on GitHub (Nov 4, 2020). Original GitHub issue: https://github.com/Seldaek/monolog/issues/1509 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 ```
kerem 2026-03-04 02:16:37 +03:00
  • closed this issue
  • added the
    Support
    label
Author
Owner

@Seldaek commented on GitHub (Dec 10, 2020):

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
<!-- gh-comment-id:742781919 --> @Seldaek commented on GitHub (Dec 10, 2020): 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 ```
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/monolog#641
No description provided.