La journalisation NHibernate requêtes SQL
Est-il un moyen d'accéder à l'ensemble de la requête SQL, y compris les valeurs, à l'intérieur de mon code?
Je suis en mesure de log de requêtes SQL à l'aide de log4net:
<logger name="NHibernate.SQL" additivity="false">
<level value="ALL"/>
<appender-ref ref="NHibernateSQLFileLog"/>
</logger>
Cependant, je voudrais trouver un moyen de log de requêtes SQL dans le code aussi. De cette façon, je vais ouvrir une session spécifique de la requête SQL qui provoque une exception dans mon instruction try/catch.
Droit maintenant, j'ai des données de la mine de la SQLFileLog à trouver la requête qui a provoqué l'exception lorsqu'une exception se produit et il n'est pas efficace.
dupliquer: stackoverflow.com/questions/1264132/...
OriginalL'auteur GuestMVCAsync | 2010-02-04
Vous devez vous connecter pour publier un commentaire.
vous pouvez utiliser un intercepteur pour ce faire:
Voir Nhibernate Docs pour les différentes façons de s'inscrire avec nhibernate.
nhforge.org/doc/nh/en/index.html#objectstate-interceptors pas trouvé, tout échantillon à l'aide de
LoggingInterceptor
?nhibernate.info/doc/nhibernate-reference/events.html
OriginalL'auteur Mike Glenn
Vous pouvez remplacer pilote:
Et ensuite l'utiliser dans la configuration:
OriginalL'auteur nicolay.anykienko
Soit utiliser le générateur de profils sql ou d'avoir un coup d'oeil à nhprof à http://nhprof.com/
À la fois vous permettra de voir sql de sortie.
Également définir la show_sql propriété dans le fichier de configuration hibernate
configuration = new Cfg.Configuration(); configuration.SetProperty(Cfg.Environment.ShowSql, "true"); _sessionFactory = configuration.BuildSessionFactory(); log4net.Config.XmlConfigurator.Configure();
, mais ne fonctionne pasOriginalL'auteur Chev
Utiliser un log4net appender avec des cibles spécifiques (afair il supporte d'être activée/désactivée) ou tout simplement l'étendre et de l'activer dans votre try-catch-finally-off.
OriginalL'auteur Pasi Savolainen