Udostępnij za pośrednictwem


DatabaseLogFormatter Klasa

Definicja

Jest to domyślny formater dziennika używany, gdy niektóre Action<T> są ustawione na Log właściwość . Można użyć innego formatatora, tworząc klasę dziedziczą po tej klasie i zastępuje niektóre lub wszystkie metody zmiany zachowania.

public class DatabaseLogFormatter : System.Data.Entity.Infrastructure.Interception.IDbCommandInterceptor, System.Data.Entity.Infrastructure.Interception.IDbConnectionInterceptor, System.Data.Entity.Infrastructure.Interception.IDbTransactionInterceptor
type DatabaseLogFormatter = class
    interface IDbCommandInterceptor
    interface IDbConnectionInterceptor
    interface IDbTransactionInterceptor
    interface IDbInterceptor
Public Class DatabaseLogFormatter
Implements IDbCommandInterceptor, IDbConnectionInterceptor, IDbTransactionInterceptor
Dziedziczenie
DatabaseLogFormatter
Implementuje

Uwagi

Aby ustawić nowy formatator, utwórz konfigurację opartą na kodzie dla platformy EF przy użyciu programu EF, DbConfiguration a następnie ustaw klasę formatera do użycia z SetDatabaseLogFormatter(Func<DbContext,Action<String>,DatabaseLogFormatter>)programem . Należy pamiętać, że ustawienie typu formatującego do użycia z tą metodą powoduje zmianę sposobu rejestrowania polecenia, gdy Log jest używany. Nadal należy ustawić wartość Action<T> na przed Log zarejestrowaniem wszystkich poleceń. Aby uzyskać bardziej niską kontrolę nad rejestrowaniem/przechwytywaniem, zobacz IDbCommandInterceptor i DbInterception. Przechwytniki można również zarejestrować w pliku konfiguracji aplikacji. Zobacz http://go.microsoft.com/fwlink/?LinkId=260883 , aby uzyskać więcej informacji na temat konfiguracji programu Entity Framework.

Konstruktory

DatabaseLogFormatter(Action<String>)

Tworzy formater, który nie będzie filtrować według żadnego DbContext polecenia i zamiast tego rejestruje każde polecenie z dowolnego kontekstu, a także polecenia, które nie pochodzą z kontekstu.

DatabaseLogFormatter(DbContext, Action<String>)

Tworzy program formatujący, który będzie rejestrować tylko polecenia pochodzące z danego DbContext wystąpienia.

Właściwości

Context

Kontekst, dla którego są rejestrowane polecenia lub null, jeśli polecenia ze wszystkich kontekstów są rejestrowane.

Stopwatch
Przestarzałe.

Ta właściwość jest przestarzała. Użycie go może spowodować rejestrowanie nieprawidłowych czasów wykonywania. Wywołaj GetStopwatch(DbCommandInterceptionContext) zamiast tego.

Metody

BeganTransaction(DbConnection, BeginTransactionInterceptionContext)

Wywoływane po BeginTransaction(IsolationLevel) wywołaniu. Domyślna implementacja tej metody filtruje według DbContext ustawienia Context, jeśli istnieje, a następnie rejestruje zdarzenie.

BeginningTransaction(DbConnection, BeginTransactionInterceptionContext)

Nie zapisuje w dzienniku, chyba że zostanie zastąpiony.

Closed(DbConnection, DbConnectionInterceptionContext)

Wywoływane po Close() wywołaniu. Domyślna implementacja tej metody filtruje według DbContext ustawienia Context, jeśli istnieje, a następnie rejestruje zdarzenie.

Closing(DbConnection, DbConnectionInterceptionContext)

Nie zapisuje w dzienniku, chyba że zostanie zastąpiony.

Committed(DbTransaction, DbTransactionInterceptionContext)

Ta metoda jest wywoływana po Commit() wywołaniu. Domyślna implementacja tej metody filtruje według DbContext ustawienia Context, jeśli istnieje, a następnie rejestruje zdarzenie.

Committing(DbTransaction, DbTransactionInterceptionContext)

Nie zapisuje w dzienniku, chyba że zostanie zastąpiony.

ConnectionGetting(DbTransaction, DbTransactionInterceptionContext<DbConnection>)

Nie zapisuje w dzienniku, chyba że zostanie zastąpiony.

ConnectionGot(DbTransaction, DbTransactionInterceptionContext<DbConnection>)

Nie zapisuje w dzienniku, chyba że zostanie zastąpiony.

ConnectionStringGetting(DbConnection, DbConnectionInterceptionContext<String>)

Nie zapisuje w dzienniku, chyba że zostanie zastąpiony.

ConnectionStringGot(DbConnection, DbConnectionInterceptionContext<String>)

Nie zapisuje w dzienniku, chyba że zostanie zastąpiony.

ConnectionStringSet(DbConnection, DbConnectionPropertyInterceptionContext<String>)

Nie zapisuje w dzienniku, chyba że zostanie zastąpiony.

ConnectionStringSetting(DbConnection, DbConnectionPropertyInterceptionContext<String>)

Nie zapisuje w dzienniku, chyba że zostanie zastąpiony.

ConnectionTimeoutGetting(DbConnection, DbConnectionInterceptionContext<Int32>)

Nie zapisuje w dzienniku, chyba że zostanie zastąpiony.

ConnectionTimeoutGot(DbConnection, DbConnectionInterceptionContext<Int32>)

Nie zapisuje w dzienniku, chyba że zostanie zastąpiony.

DatabaseGetting(DbConnection, DbConnectionInterceptionContext<String>)

Nie zapisuje w dzienniku, chyba że zostanie zastąpiony.

DatabaseGot(DbConnection, DbConnectionInterceptionContext<String>)

Nie zapisuje w dzienniku, chyba że zostanie zastąpiony.

DataSourceGetting(DbConnection, DbConnectionInterceptionContext<String>)

Nie zapisuje w dzienniku, chyba że zostanie zastąpiony.

DataSourceGot(DbConnection, DbConnectionInterceptionContext<String>)

Nie zapisuje w dzienniku, chyba że zostanie zastąpiony.

Disposed(DbConnection, DbConnectionInterceptionContext)

Nie zapisuje w dzienniku, chyba że zostanie zastąpiony.

Disposed(DbTransaction, DbTransactionInterceptionContext)

Nie zapisuje w dzienniku, chyba że zostanie zastąpiony.

Disposing(DbConnection, DbConnectionInterceptionContext)

Wywoływane przed Dispose() wywołaniem. Domyślna implementacja tej metody filtruje według DbContext ustawienia Context, jeśli istnieje, a następnie rejestruje zdarzenie.

Disposing(DbTransaction, DbTransactionInterceptionContext)

Ta metoda jest wywoływana przed Dispose() wywołaniem. Domyślna implementacja tej metody filtruje według DbContext ustawienia Context, jeśli istnieje, a następnie rejestruje zdarzenie.

EnlistedTransaction(DbConnection, EnlistTransactionInterceptionContext)

Nie zapisuje w dzienniku, chyba że zostanie zastąpiony.

EnlistingTransaction(DbConnection, EnlistTransactionInterceptionContext)

Nie zapisuje w dzienniku, chyba że zostanie zastąpiony.

Equals(Object)

Jest to domyślny formater dziennika używany, gdy niektóre Action<T> są ustawione na Log właściwość . Można użyć innego formatatora, tworząc klasę dziedziczą po tej klasie i zastępuje niektóre lub wszystkie metody zmiany zachowania.

Executed<TResult>(DbCommand, DbCommandInterceptionContext<TResult>)

Wywoływane za każdym razem, gdy polecenie zostało wykonane. Domyślna implementacja tej metody filtruje według DbContext wartości , Contextjeśli istnieje, a następnie wywołuje metodę LogResult<TResult>(DbCommand, DbCommandInterceptionContext<TResult>). Ta metoda zwykle jest zastępowana tylko w celu zmiany zachowania filtrowania kontekstu.

Executing<TResult>(DbCommand, DbCommandInterceptionContext<TResult>)

Wywoływane za każdym razem, gdy polecenie ma zostać wykonane. Domyślna implementacja tej metody filtruje według DbContext wartości , Contextjeśli istnieje, a następnie wywołuje metodę LogCommand<TResult>(DbCommand, DbCommandInterceptionContext<TResult>). Ta metoda zwykle jest zastępowana tylko w celu zmiany zachowania filtrowania kontekstu.

GetHashCode()

Jest to domyślny formater dziennika używany, gdy niektóre Action<T> są ustawione na Log właściwość . Można użyć innego formatatora, tworząc klasę dziedziczą po tej klasie i zastępuje niektóre lub wszystkie metody zmiany zachowania.

GetStopwatch(DbCommandInterceptionContext)

Stoper używany do wykonywania czasu. Ten stoper jest uruchamiany na końcu NonQueryExecuting(DbCommand, DbCommandInterceptionContext<Int32>)metod , ScalarExecuting(DbCommand, DbCommandInterceptionContext<Object>)i ReaderExecuting(DbCommand, DbCommandInterceptionContext<DbDataReader>) jest zatrzymywany na początku NonQueryExecuted(DbCommand, DbCommandInterceptionContext<Int32>)metod , ScalarExecuted(DbCommand, DbCommandInterceptionContext<Object>)i .ReaderExecuted(DbCommand, DbCommandInterceptionContext<DbDataReader>) Jeśli te metody są zastępowane, a stoper jest używany, przesłonięcia powinny wywoływać metodę podstawową lub uruchomić/zatrzymać sam stoper.

GetType()

Jest to domyślny formater dziennika używany, gdy niektóre Action<T> są ustawione na Log właściwość . Można użyć innego formatatora, tworząc klasę dziedziczą po tej klasie i zastępuje niektóre lub wszystkie metody zmiany zachowania.

IsolationLevelGetting(DbTransaction, DbTransactionInterceptionContext<IsolationLevel>)

Nie zapisuje w dzienniku, chyba że zostanie zastąpiony.

IsolationLevelGot(DbTransaction, DbTransactionInterceptionContext<IsolationLevel>)

Nie zapisuje w dzienniku, chyba że zostanie zastąpiony.

LogCommand<TResult>(DbCommand, DbCommandInterceptionContext<TResult>)

Wywoływana w celu zarejestrowania polecenia, które ma zostać wykonane. Zastąpij tę metodę, aby zmienić sposób rejestrowania polecenia na System.Data.Entity.Infrastructure.Interception.DatabaseLogFormatter.WriteAction.

LogParameter<TResult>(DbCommand, DbCommandInterceptionContext<TResult>, DbParameter)

Wywoływane przez w LogCommand<TResult>(DbCommand, DbCommandInterceptionContext<TResult>) celu rejestrowania każdego parametru. Tę metodę można wywołać z przesłoniętej implementacji LogCommand<TResult>(DbCommand, DbCommandInterceptionContext<TResult>) parametrów dziennika i/lub można zastąpić, aby zmienić sposób rejestrowania parametrów na System.Data.Entity.Infrastructure.Interception.DatabaseLogFormatter.WriteAction.

LogResult<TResult>(DbCommand, DbCommandInterceptionContext<TResult>)

Wywołana w celu zarejestrowania wyniku wykonania polecenia. Zastąpij tę metodę, aby zmienić sposób rejestrowania wyników na System.Data.Entity.Infrastructure.Interception.DatabaseLogFormatter.WriteAction.

NonQueryExecuted(DbCommand, DbCommandInterceptionContext<Int32>)

Ta metoda jest wywoływana po wywołaniu metody ExecuteNonQuery() lub jednej z jego odpowiedników asynchronicznych. Domyślna implementacja zatrzymuje stoper zwracany z GetStopwatch(DbCommandInterceptionContext) elementu i wywołuje polecenie Executed<TResult>(DbCommand, DbCommandInterceptionContext<TResult>).

NonQueryExecuting(DbCommand, DbCommandInterceptionContext<Int32>)

Ta metoda jest wywoływana przed wywołaniem ExecuteNonQuery() metody lub jednym z jego odpowiedników asynchronicznych. Domyślne wywołania Executing<TResult>(DbCommand, DbCommandInterceptionContext<TResult>) implementacji i uruchamia stoper zwrócony z GetStopwatch(DbCommandInterceptionContext)elementu .

Opened(DbConnection, DbConnectionInterceptionContext)

Wywoływany jest Open() po wywołaniu lub jego odpowiednik asynchroniczny. Domyślna implementacja tej metody filtruje według DbContext ustawienia Context, jeśli istnieje, a następnie rejestruje zdarzenie.

Opening(DbConnection, DbConnectionInterceptionContext)

Nie zapisuje w dzienniku, chyba że zostanie zastąpiony.

ReaderExecuted(DbCommand, DbCommandInterceptionContext<DbDataReader>)

Ta metoda jest wywoływana po wywołaniu metody ExecuteReader(CommandBehavior) lub jednej z jego odpowiedników asynchronicznych. Domyślna implementacja zatrzymuje stoper zwracany z GetStopwatch(DbCommandInterceptionContext) elementu i wywołuje polecenie Executed<TResult>(DbCommand, DbCommandInterceptionContext<TResult>).

ReaderExecuting(DbCommand, DbCommandInterceptionContext<DbDataReader>)

Ta metoda jest wywoływana przed wywołaniem ExecuteReader(CommandBehavior) metody lub jednym z jego odpowiedników asynchronicznych. Domyślne wywołania Executing<TResult>(DbCommand, DbCommandInterceptionContext<TResult>) implementacji i uruchamia stoper zwrócony z GetStopwatch(DbCommandInterceptionContext)elementu .

RolledBack(DbTransaction, DbTransactionInterceptionContext)

Ta metoda jest wywoływana po Rollback() wywołaniu. Domyślna implementacja tej metody filtruje według DbContext ustawienia Context, jeśli istnieje, a następnie rejestruje zdarzenie.

RollingBack(DbTransaction, DbTransactionInterceptionContext)

Nie zapisuje w dzienniku, chyba że zostanie zastąpiony.

ScalarExecuted(DbCommand, DbCommandInterceptionContext<Object>)

Ta metoda jest wywoływana po wywołaniu metody ExecuteScalar() lub jednej z jego odpowiedników asynchronicznych. Domyślna implementacja zatrzymuje stoper zwracany z GetStopwatch(DbCommandInterceptionContext) elementu i wywołuje polecenie Executed<TResult>(DbCommand, DbCommandInterceptionContext<TResult>).

ScalarExecuting(DbCommand, DbCommandInterceptionContext<Object>)

Ta metoda jest wywoływana przed wywołaniem ExecuteScalar() metody lub jednym z jego odpowiedników asynchronicznych. Domyślne wywołania Executing<TResult>(DbCommand, DbCommandInterceptionContext<TResult>) implementacji i uruchamia stoper zwrócony z GetStopwatch(DbCommandInterceptionContext)elementu .

ServerVersionGetting(DbConnection, DbConnectionInterceptionContext<String>)

Nie zapisuje w dzienniku, chyba że zostanie zastąpiony.

ServerVersionGot(DbConnection, DbConnectionInterceptionContext<String>)

Nie zapisuje w dzienniku, chyba że zostanie zastąpiony.

StateGetting(DbConnection, DbConnectionInterceptionContext<ConnectionState>)

Nie zapisuje w dzienniku, chyba że zostanie zastąpiony.

StateGot(DbConnection, DbConnectionInterceptionContext<ConnectionState>)

Nie zapisuje w dzienniku, chyba że zostanie zastąpiony.

ToString()

Jest to domyślny formater dziennika używany, gdy niektóre Action<T> są ustawione na Log właściwość . Można użyć innego formatatora, tworząc klasę dziedziczą po tej klasie i zastępuje niektóre lub wszystkie metody zmiany zachowania.

Write(String)

Zapisuje dany ciąg do podstawowego delegata zapisu.

Dotyczy