Protokollierung NHibernate, SQL-Abfragen
Gibt es eine Möglichkeit, den Zugriff auf die vollständige SQL-Abfrage, einschließlich der Werte, in meinem code?
Ich bin in der Lage, log-SQL-Abfragen mit Hilfe von log4net:
<logger name="NHibernate.SQL" additivity="false">
<level value="ALL"/>
<appender-ref ref="NHibernateSQLFileLog"/>
</logger>
Allerdings würde ich gerne einen Weg finden, anmelden von SQL-Abfragen aus der code auch. Auf diese Weise werde ich protokollieren die jeweilige SQL-Abfrage, die bewirkt, dass eine Ausnahme in meiner try - /catch-Anweisung.
Recht, jetzt muss ich die Daten-mine, die SQLFileLog zu finden, die Abfrage, die die Ausnahme verursacht, wenn eine Ausnahme Auftritt, und Sie ist nicht effizient.
- duplizieren: stackoverflow.com/questions/1264132/...
Du musst angemeldet sein, um einen Kommentar abzugeben.
können Sie einen interceptor, dies zu tun:
Sehen Nhibernate-Docs für die verschiedenen Möglichkeiten, um sich mit nhibernate.
LoggingInterceptor
?Können Sie überschreiben-Treiber:
Und dann verwenden Sie es in der Konfiguration:
Entweder verwenden Sie sql profiler oder haben einen Blick auf nhprof bei http://nhprof.com/
Beide können Sie sehen, sql Ausgabe.
Auch die show_sql Eigenschaft in der hibernate config-Datei
configuration = new Cfg.Configuration(); configuration.SetProperty(Cfg.Environment.ShowSql, "true"); _sessionFactory = configuration.BuildSessionFactory(); log4net.Config.XmlConfigurator.Configure();
aber nicht funktioniertVerwenden log4net appender mit bestimmten Ziel (anmutigen unterstützt wird umgeschaltet (on/off) oder nur erweitern es und setzen Sie es in Ihrem try-catch-finally-off.