Поделиться через


DatabaseLogFormatter Класс

Определение

Это модуль форматирования журнала по умолчанию, используемый, когда некоторые из этих Action<T> форматов заданы в свойстве Log . Другой модуль форматирования можно использовать, создав класс, который наследует от этого класса и переопределяет некоторые или все методы для изменения поведения.

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
Наследование
DatabaseLogFormatter
Реализации

Комментарии

Чтобы задать новый модуль форматирования, создайте конфигурацию на основе кода для EF с помощью DbConfiguration , а затем задайте класс модуля форматирования для использования с SetDatabaseLogFormatter(Func<DbContext,Action<String>,DatabaseLogFormatter>). Обратите внимание, что установка типа модуля форматирования для использования с этим методом изменяет способ ведения журнала команд при Log использовании . По-прежнему необходимо установить значение в Action<T> , Log прежде чем какие-либо команды будут записаны в журнал. Более низкий уровень управления ведением журнала и перехватом см IDbCommandInterceptor . в разделах и DbInterception. Перехватчики также можно зарегистрировать в файле конфигурации приложения. Дополнительные сведения о конфигурации Entity Framework см http://go.microsoft.com/fwlink/?LinkId=260883 . в этой статье.

Конструкторы

DatabaseLogFormatter(Action<String>)

Создает модуль форматирования, который не будет фильтровать ни по одному DbContext и вместо этого будет регистрировать каждую команду из любого контекста, а также команды, которые не исходят из контекста.

DatabaseLogFormatter(DbContext, Action<String>)

Создает модуль форматирования, который будет регистрировать только команды , поступающие из заданного DbContext экземпляра.

Свойства

Context

Контекст, для которого регистрируются команды, или значение NULL, если регистрируются команды из всех контекстов.

Stopwatch
Устаревшие..

Это свойство устарело. Его использование может привести к неправильному времени выполнения в журнале. Вместо него вызовите метод GetStopwatch(DbCommandInterceptionContext).

Методы

BeganTransaction(DbConnection, BeginTransactionInterceptionContext)

Вызывается после BeginTransaction(IsolationLevel) вызова . Реализация этого метода по умолчанию фильтруется по параметру DbContextContext, если таковой есть, а затем регистрирует событие.

BeginningTransaction(DbConnection, BeginTransactionInterceptionContext)

Не записывает данные в журнал, если не переопределен.

Closed(DbConnection, DbConnectionInterceptionContext)

Вызывается после Close() вызова . Реализация этого метода по умолчанию фильтруется по параметру DbContextContext, если таковой есть, а затем регистрирует событие.

Closing(DbConnection, DbConnectionInterceptionContext)

Не записывает данные в журнал, если не переопределен.

Committed(DbTransaction, DbTransactionInterceptionContext)

Этот метод вызывается после Commit() вызова . Реализация этого метода по умолчанию фильтруется по параметру DbContextContext, если таковой есть, а затем регистрирует событие.

Committing(DbTransaction, DbTransactionInterceptionContext)

Не записывает данные в журнал, если не переопределен.

ConnectionGetting(DbTransaction, DbTransactionInterceptionContext<DbConnection>)

Не записывает данные в журнал, если не переопределен.

ConnectionGot(DbTransaction, DbTransactionInterceptionContext<DbConnection>)

Не записывает данные в журнал, если не переопределен.

ConnectionStringGetting(DbConnection, DbConnectionInterceptionContext<String>)

Не записывает данные в журнал, если не переопределен.

ConnectionStringGot(DbConnection, DbConnectionInterceptionContext<String>)

Не записывает данные в журнал, если не переопределен.

ConnectionStringSet(DbConnection, DbConnectionPropertyInterceptionContext<String>)

Не записывает данные в журнал, если не переопределен.

ConnectionStringSetting(DbConnection, DbConnectionPropertyInterceptionContext<String>)

Не записывает данные в журнал, если не переопределен.

ConnectionTimeoutGetting(DbConnection, DbConnectionInterceptionContext<Int32>)

Не записывает данные в журнал, если не переопределен.

ConnectionTimeoutGot(DbConnection, DbConnectionInterceptionContext<Int32>)

Не записывает данные в журнал, если не переопределен.

DatabaseGetting(DbConnection, DbConnectionInterceptionContext<String>)

Не записывает данные в журнал, если не переопределен.

DatabaseGot(DbConnection, DbConnectionInterceptionContext<String>)

Не записывает данные в журнал, если не переопределен.

DataSourceGetting(DbConnection, DbConnectionInterceptionContext<String>)

Не записывает данные в журнал, если не переопределен.

DataSourceGot(DbConnection, DbConnectionInterceptionContext<String>)

Не записывает данные в журнал, если не переопределен.

Disposed(DbConnection, DbConnectionInterceptionContext)

Не записывает данные в журнал, если не переопределен.

Disposed(DbTransaction, DbTransactionInterceptionContext)

Не записывает данные в журнал, если не переопределен.

Disposing(DbConnection, DbConnectionInterceptionContext)

Вызывается до Dispose() вызова . Реализация этого метода по умолчанию фильтруется по параметру DbContextContext, если таковой есть, а затем регистрирует событие.

Disposing(DbTransaction, DbTransactionInterceptionContext)

Этот метод вызывается перед Dispose() вызовом. Реализация этого метода по умолчанию фильтруется по параметру DbContextContext, если таковой есть, а затем регистрирует событие.

EnlistedTransaction(DbConnection, EnlistTransactionInterceptionContext)

Не записывает данные в журнал, если не переопределен.

EnlistingTransaction(DbConnection, EnlistTransactionInterceptionContext)

Не записывает данные в журнал, если не переопределен.

Equals(Object)

Это модуль форматирования журнала по умолчанию, используемый, когда некоторые из этих Action<T> форматов заданы в свойстве Log . Другой модуль форматирования можно использовать, создав класс, который наследует от этого класса и переопределяет некоторые или все методы для изменения поведения.

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

Вызывается каждый раз, когда команда завершает выполнение. Реализация этого метода по умолчанию фильтруется по параметру DbContextContext, если таковой есть, а затем вызывает LogResult<TResult>(DbCommand, DbCommandInterceptionContext<TResult>). Этот метод обычно переопределяется только для изменения поведения фильтрации контекста.

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

Вызывается каждый раз, когда команда должна быть выполнена. Реализация этого метода по умолчанию фильтруется по параметру DbContextContext, если таковой есть, а затем вызывает LogCommand<TResult>(DbCommand, DbCommandInterceptionContext<TResult>). Этот метод обычно переопределяется только для изменения поведения фильтрации контекста.

GetHashCode()

Это модуль форматирования журнала по умолчанию, используемый, когда некоторые из этих Action<T> форматов заданы в свойстве Log . Другой модуль форматирования можно использовать, создав класс, который наследует от этого класса и переопределяет некоторые или все методы для изменения поведения.

GetStopwatch(DbCommandInterceptionContext)

Секундомер, используемый для выполнения. Этот секундомер запускается в конце NonQueryExecuting(DbCommand, DbCommandInterceptionContext<Int32>)методов , ScalarExecuting(DbCommand, DbCommandInterceptionContext<Object>)и ReaderExecuting(DbCommand, DbCommandInterceptionContext<DbDataReader>) и останавливается в начале NonQueryExecuted(DbCommand, DbCommandInterceptionContext<Int32>)методов , ScalarExecuted(DbCommand, DbCommandInterceptionContext<Object>)и ReaderExecuted(DbCommand, DbCommandInterceptionContext<DbDataReader>) . Если эти методы переопределены и используется секундомер, переопределения должны либо вызывать базовый метод, либо запускать или останавливать секундомер.

GetType()

Это модуль форматирования журнала по умолчанию, используемый, когда некоторые из этих Action<T> форматов заданы в свойстве Log . Другой модуль форматирования можно использовать, создав класс, который наследует от этого класса и переопределяет некоторые или все методы для изменения поведения.

IsolationLevelGetting(DbTransaction, DbTransactionInterceptionContext<IsolationLevel>)

Не записывает данные в журнал, если не переопределен.

IsolationLevelGot(DbTransaction, DbTransactionInterceptionContext<IsolationLevel>)

Не записывает данные в журнал, если не переопределен.

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

Вызывается для регистрации команды, которая должна быть выполнена. Переопределите этот метод, чтобы изменить способ ведения журнала команды в System.Data.Entity.Infrastructure.Interception.DatabaseLogFormatter.WriteAction.

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

Вызывается методом LogCommand<TResult>(DbCommand, DbCommandInterceptionContext<TResult>) для ведения журнала каждого параметра. Этот метод может вызываться из переопределенной реализации LogCommand<TResult>(DbCommand, DbCommandInterceptionContext<TResult>) в параметры журнала и /или может быть переопределен, чтобы изменить способ ведения журнала параметров в System.Data.Entity.Infrastructure.Interception.DatabaseLogFormatter.WriteAction.

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

Вызывается для регистрации результата выполнения команды. Переопределите этот метод, чтобы изменить способ ведения журнала результатов в System.Data.Entity.Infrastructure.Interception.DatabaseLogFormatter.WriteAction.

NonQueryExecuted(DbCommand, DbCommandInterceptionContext<Int32>)

Этот метод вызывается после вызова ExecuteNonQuery() или одного из его асинхронных аналогов. Реализация по умолчанию останавливает секундомер, возвращенный из GetStopwatch(DbCommandInterceptionContext) и вызывает .Executed<TResult>(DbCommand, DbCommandInterceptionContext<TResult>)

NonQueryExecuting(DbCommand, DbCommandInterceptionContext<Int32>)

Этот метод вызывается перед вызовом ExecuteNonQuery() или одним из его асинхронных аналогов. Реализация по умолчанию вызывает Executing<TResult>(DbCommand, DbCommandInterceptionContext<TResult>) и запускает секундомер, возвращаемый из GetStopwatch(DbCommandInterceptionContext).

Opened(DbConnection, DbConnectionInterceptionContext)

Вызывается после Open() вызова или его асинхронного аналога. Реализация этого метода по умолчанию фильтруется по параметру DbContextContext, если таковой есть, а затем регистрирует событие.

Opening(DbConnection, DbConnectionInterceptionContext)

Не записывает данные в журнал, если не переопределен.

ReaderExecuted(DbCommand, DbCommandInterceptionContext<DbDataReader>)

Этот метод вызывается после вызова ExecuteReader(CommandBehavior) или одного из его асинхронных аналогов. Реализация по умолчанию останавливает секундомер, возвращенный из GetStopwatch(DbCommandInterceptionContext) и вызывает .Executed<TResult>(DbCommand, DbCommandInterceptionContext<TResult>)

ReaderExecuting(DbCommand, DbCommandInterceptionContext<DbDataReader>)

Этот метод вызывается перед вызовом ExecuteReader(CommandBehavior) или одним из его асинхронных аналогов. Реализация по умолчанию вызывает Executing<TResult>(DbCommand, DbCommandInterceptionContext<TResult>) и запускает секундомер, возвращаемый из GetStopwatch(DbCommandInterceptionContext).

RolledBack(DbTransaction, DbTransactionInterceptionContext)

Этот метод вызывается после Rollback() вызова . Реализация этого метода по умолчанию фильтруется по параметру DbContextContext, если таковой есть, а затем регистрирует событие.

RollingBack(DbTransaction, DbTransactionInterceptionContext)

Не записывает данные в журнал, если не переопределен.

ScalarExecuted(DbCommand, DbCommandInterceptionContext<Object>)

Этот метод вызывается после вызова ExecuteScalar() или одного из его асинхронных аналогов. Реализация по умолчанию останавливает секундомер, возвращенный из GetStopwatch(DbCommandInterceptionContext) и вызывает .Executed<TResult>(DbCommand, DbCommandInterceptionContext<TResult>)

ScalarExecuting(DbCommand, DbCommandInterceptionContext<Object>)

Этот метод вызывается перед вызовом ExecuteScalar() или одним из его асинхронных аналогов. Реализация по умолчанию вызывает Executing<TResult>(DbCommand, DbCommandInterceptionContext<TResult>) и запускает секундомер, возвращаемый из GetStopwatch(DbCommandInterceptionContext).

ServerVersionGetting(DbConnection, DbConnectionInterceptionContext<String>)

Не записывает данные в журнал, если не переопределен.

ServerVersionGot(DbConnection, DbConnectionInterceptionContext<String>)

Не записывает данные в журнал, если не переопределен.

StateGetting(DbConnection, DbConnectionInterceptionContext<ConnectionState>)

Не записывает данные в журнал, если не переопределен.

StateGot(DbConnection, DbConnectionInterceptionContext<ConnectionState>)

Не записывает данные в журнал, если не переопределен.

ToString()

Это модуль форматирования журнала по умолчанию, используемый, когда некоторые из этих Action<T> форматов заданы в свойстве Log . Другой модуль форматирования можно использовать, создав класс, который наследует от этого класса и переопределяет некоторые или все методы для изменения поведения.

Write(String)

Записывает заданную строку в базовый делегат записи.

Применяется к