我想在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配置中使用数据库选项。
有文件吗?
为monolog启用mongodb的另一种方法是:
monolog:
handlers:
mongo:
type: mongo
mongo:
host: '%env(MONGODB_URL)%'
user: myuser
pass: mypass
database: '%env(MONGODB_DB)%'
collection: logs
,所以这意味着你需要删除id
字段并添加user
和pass
。