Aktivieren des Statement-Loggings für den GORM
Frage
Wie aktiviere ich das Statement-Logging für den Generic OR Mapper?
Antwort
Um das Logging zu aktivieren, muss der 5. Parameter beim Beziehen des Managers durch die GenericORMapperFactory auf true gesetzt werden.
$GORMFactory = &$this->__getServiceObject('modules::genericormapper::data', 'GenericORMapperFactory'); $GORM = $GORMFactory->getGenericORMapper( {config_namespace}, {config_nameAffix}, {connectionName}, {ServiceMode}, {debugMode} );
Wenn {debugMode} auf true gesetzt wird, werden alle Statements geloggt. Standardmässig wird false gesetzt.
Im live Betrieb sollte das Logging NICHT aktiviert werden!
Wenn der GORM an mehreren Stellen im Quelltext bezogen wird, muss der 1. Mapper mit true initialisiert werden, da er pro Request (oder bei SESSIONSINGLETON pro Session) nur einmal initialisiert wird. Wenn er als SESSIONSINGLETON bezogen wird, muss nach dem Umstellen des Parameters womöglich der Server neu gestartet werden, um die Änderung zu übernehmen.
Sollen beispielsweise die Statements des umgtManagers geloggt werden, muss die Funktion __getORMapper() des umgtManagers folgendermaßen überschrieben werden:
protected function &__getORMapper(){ $ormFactory = &$this->__getServiceObject('modules::genericormapper::data','GenericORMapperFactory'); return $ormFactory->getGenericORMapper( 'modules::usermanagement', 'umgt', $this->__ConnectionKey, $this->__ServiceMode, true ); // end function }