Сохранить монолог в Mongodb в Symfony 4 - PullRequest
0 голосов
/ 15 января 2019

Я хочу добавить монолог в mongodb с обработчиком по умолчанию (MongoDBHandler) в Symfony 4 .

мой файл monolog.yaml в папке dev

monolog:
    handlers:
        mongo:
             type: mongo
             mongo:
                id: monolog.logger.mongo
                host: '%env(MONGODB_URL)%'
                database: '%env(MONGODB_DB)%'
                collection: logs

my services.yaml

services:
    monolog.logger.mongo:
        class: Monolog\Handler\MongoDBHandler
        arguments: ['@doctrine_mongodb']

my doctrine_mongodb.yaml

doctrine_mongodb:
    auto_generate_proxy_classes: '%kernel.debug%'
    auto_generate_hydrator_classes: '%kernel.debug%'
    connections:
        default:
            server: '%env(MONGODB_URL)%'
            options:
                    db: '%env(MONGODB_DB)%'
        log:
                server: '%env(MONGODB_URL)%'
                options:
                    db: '%env(MONGODB_DB)%'
                    connect: true
    default_database: '%env(MONGODB_DB)%'
    document_managers:
        log:
            auto_mapping: false
            logging: false

Но не работает.

одна из ошибок:

Не удается автоматически подключить службу "monolog.logger.mongo": аргумент "$ database" метода "Monolog \ Handler \ MongoDBHandler :: __ construct ()" является подсказка типа "строка", вы должны явно указать ее значение.

Пока я использую опцию базы данных в конфигурации монолога.

Есть ли документ?

1 Ответ

0 голосов
/ 21 марта 2019

Другой способ включить mongodb для монолога:

monolog:
    handlers:
        mongo:
             type: mongo
             mongo:
                host: '%env(MONGODB_URL)%'
                user: myuser
                pass: mypass
                database: '%env(MONGODB_DB)%'
                collection: logs

, значит, вам нужно удалить поле id и вместо него добавить user и pass.

...