在symfony 4中保存mongodb中的monolog

问题描述 投票:1回答:1

我想在mongodb中添加monolog,在Symfony 4中使用默认处理程序(MongoDBHandler)。

我在dev文件夹中的monolog.yaml文件

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

我的服务.yaml

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

我的教义_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”:方法“Monolog \ Handler \ MongoDBHandler :: __ construct()”的参数“$ database”是类型提示的“字符串”,您应该显式配置它的值。

虽然我在monolog配置中使用数据库选项。

有文件吗?

mongodb symfony logging symfony4 monolog
1个回答
0
投票

为monolog启用mongodb的另一种方法是:

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

,所以这意味着你需要删除id字段并添加userpass

© www.soinside.com 2019 - 2024. All rights reserved.