我想使用本教程为monolog创建自己的处理程序。
现在,由于我的处理程序需要这样的PDO连接
$logger->pushHandler(new LogHandler(new PDO("mysql:host=$host;dbname=$dbname", $user, $pass)));
$logger->addInfo('My logger is now ready');然后这家伙告诉我插入连接作为服务
LIke this
doctrine.dbal.default.wrapped_connection:
factory_service: doctrine.dbal.default_connection
factory_method: getWrappedConnection
class: PDO
my.monologhandler.pdo:
class: sojeans\BackBundle\Monolog\Handler\PDOHandler
arguments:
- '@doctrine.dbal.default.wrapped_connection'
tags:
- { name: log_handler }但是我得到了循环参考错误,所以其他人告诉我这样做
这里有一个循环引用:您需要创建doctrine.dbal.default.wrapped_connection (因为它是一个工厂服务)创建doctrine.dbal.default_connection服务,并且这个服务使用记录器。
但我不知道该怎么做。
发布于 2012-08-13 13:40:33
尝试向您的原则配置中添加一个没有调试或分析的新连接:
doctrine:
dbal:
connections:
default:
driver: %database_driver%
host: %database_host%
port: %database_port%
dbname: %database_name%
user: %database_user%
password: %database_password%
charset: UTF8
logger:
driver: %database_driver%
host: %database_host%
port: %database_port%
dbname: %database_name%
user: %database_user%
password: %database_password%
charset: UTF8
logging: false
profiling: false然后使用新的logger_connection服务:
doctrine.dbal.logger.wrapped_connection:
factory_service: doctrine.dbal.logger_connection
factory_method: getWrappedConnection
class: PDO
my.monologhandler.pdo:
class: sojeans\BackBundle\Monolog\Handler\PDOHandler
arguments:
- @doctrine.dbal.logger.wrapped_connection
tags:
- { name: log_handler }如果这有用的话请告诉我。
https://stackoverflow.com/questions/11930481
复制相似问题