Protokollieren von NHibernate SQL-Abfragen

8

Gibt es eine Möglichkeit, auf die vollständige SQL-Abfrage einschließlich der Werte in meinem Code zuzugreifen?

Ich kann SQL-Abfragen mit log4net protokollieren:

%Vor%

Ich möchte jedoch auch eine Möglichkeit finden, SQL-Abfragen aus dem Code zu protokollieren. Auf diese Weise werde ich die spezifische SQL-Abfrage protokollieren, die eine Ausnahme in meiner try / catch-Anweisung verursacht.

Im Moment muss ich SQLFileLog abfragen, um die Abfrage zu finden, die die Ausnahme verursacht hat, wenn eine Ausnahme auftritt und nicht effizient ist.

    
GuestMVCAsync 04.02.2010, 10:24
quelle

4 Antworten

8

Sie können dazu einen Interceptor verwenden:

%Vor%

Siehe Nhibernate Docs für die verschiedenen Möglichkeiten, es mit nhibernate zu registrieren.

    
Mike Glenn 20.05.2010 13:16
quelle
5

Sie können den Treiber überschreiben:

%Vor%

Und dann benutze es in der Konfiguration:

%Vor%     
nicolay.anykienko 24.07.2012 11:40
quelle
3

Verwenden Sie entweder sql profiler oder werfen Sie einen Blick auf nhprof unter Ссылка

Beide lassen Sie sql Ausgabe sehen.

Setzen Sie auch die show_sql-Eigenschaft in der Hibernate-Konfigurationsdatei

%Vor%     
Chev 12.02.2010 19:09
quelle
1

Verwenden Sie einen log4net-Appender mit einem bestimmten Ziel (so lange es ein- oder ausgeschaltet werden kann) oder erweitern Sie es einfach und schalten Sie es innerhalb Ihrer try-catch-finally-off-Funktion um.

    
Pasi Savolainen 31.03.2010 22:29
quelle

Tags und Links