logging - Injecting Logger in Symfony 2 ODM Documents -
i developing symfony 2 application , want log when setters called in models.
as see, there no way inject logger default or access via static registry in symfony 2, approach follows:
i added static method , property base class of models , set logger there. added getter, available in models.
i set logger in there via request kernel event, logger available after event.
this solution works seems rather hacky me. got better idea how approach this? setup method not rely on request kernel event nice. method not rely on static properties nicer!
attention! adding logger base document may lead issues serialization.
i put second argument setter:
supposing have entity solution ti following:
//namespace declaration above class someentity { .... private $somefield; public function setsomefield($somefield,loggerservice $l) { $this->somefield=$somefield; $l->log(""somefield has been set""); } }
note: instead of loggerservice
replace logger class may have developed , call appropriate methods loggerservice
assumptio make in order show way.
in case using monolog , not custom loggingclass:
//namespace declaration above use symfony\bridge\monolog\logger; class someentity { .... private $somefield; public function setsomefield($somefield,logger $l) { $this->somefield=$somefield; $l->info("somefield has been set"); } }
i hope fits needs. better log setters without probs serialization.
Comments
Post a Comment