DatabaseLogFormatter 类

定义

这是在属性上Log设置某些Action<T>日志格式化程序时使用的默认日志格式化程序。 通过创建继承自此类并重写部分或所有方法来更改行为的类,可以使用不同的格式化程序。

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
实现

注解

若要设置新的格式化程序,请使用 DbConfiguration 为 EF 创建基于代码的配置,然后将格式化程序类设置为与 一起使用 SetDatabaseLogFormatter(Func<DbContext,Action<String>,DatabaseLogFormatter>)。 请注意,设置要与此方法一起使用的格式化程序类型会更改使用 时 Log 记录命令的方式。 在记录任何命令之前,仍有必要将 设置为 Action<T>Log 。 有关日志记录/拦截的更多低级别控制,请参阅 IDbCommandInterceptorDbInterception。 侦听器还可以在应用程序的配置文件中注册。 有关 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) 调用。 此方法的默认实现按设置为 Context(如果有)筛选DbContext,然后记录事件。

BeginningTransaction(DbConnection, BeginTransactionInterceptionContext)

除非重写,否则不会写入日志。

Closed(DbConnection, DbConnectionInterceptionContext)

在调用 后 Close() 调用。 此方法的默认实现按设置为 Context(如果有)筛选DbContext,然后记录事件。

Closing(DbConnection, DbConnectionInterceptionContext)

除非重写,否则不会写入日志。

Committed(DbTransaction, DbTransactionInterceptionContext)

调用 后 Commit() 调用此方法。 此方法的默认实现按设置为 Context(如果有)筛选DbContext,然后记录事件。

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() 调用。 此方法的默认实现按设置为 Context(如果有)筛选DbContext,然后记录事件。

Disposing(DbTransaction, DbTransactionInterceptionContext)

此方法在调用之前 Dispose() 调用。 此方法的默认实现按设置为 Context(如果有)筛选DbContext,然后记录事件。

EnlistedTransaction(DbConnection, EnlistTransactionInterceptionContext)

除非重写,否则不会写入日志。

EnlistingTransaction(DbConnection, EnlistTransactionInterceptionContext)

除非重写,否则不会写入日志。

Equals(Object)

这是在属性上Log设置某些Action<T>日志格式化程序时使用的默认日志格式化程序。 通过创建继承自此类并重写部分或所有方法来更改行为的类,可以使用不同的格式化程序。

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

每当命令完成执行时调用。 此方法的默认实现通过将 DbContext 设置为 Context筛选(如果有),然后调用 LogResult<TResult>(DbCommand, DbCommandInterceptionContext<TResult>)。 此方法通常只会重写以更改上下文筛选行为。

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

每当命令即将执行时调用。 此方法的默认实现通过将 DbContext 设置为 Context筛选(如果有),然后调用 LogCommand<TResult>(DbCommand, DbCommandInterceptionContext<TResult>)。 此方法通常只会重写以更改上下文筛选行为。

GetHashCode()

这是在属性上Log设置某些Action<T>日志格式化程序时使用的默认日志格式化程序。 通过创建继承自此类并重写部分或所有方法来更改行为的类,可以使用不同的格式化程序。

GetStopwatch(DbCommandInterceptionContext)

用于计时执行的秒表。 此秒表在 、 和 方法的NonQueryExecuting(DbCommand, DbCommandInterceptionContext<Int32>)末尾启动,并在 、 ScalarExecuted(DbCommand, DbCommandInterceptionContext<Object>)ReaderExecuted(DbCommand, DbCommandInterceptionContext<DbDataReader>) 方法的NonQueryExecuted(DbCommand, DbCommandInterceptionContext<Int32>)开头ReaderExecuting(DbCommand, DbCommandInterceptionContext<DbDataReader>)停止。 ScalarExecuting(DbCommand, DbCommandInterceptionContext<Object>) 如果这些方法被重写并且正在使用秒表,则替代应调用基方法或启动/停止秒表本身。

GetType()

这是在属性上Log设置某些Action<T>日志格式化程序时使用的默认日志格式化程序。 通过创建继承自此类并重写部分或所有方法来更改行为的类,可以使用不同的格式化程序。

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() 调用或其异步对应项。 此方法的默认实现按设置为 Context(如果有)筛选DbContext,然后记录事件。

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() 调用此方法。 此方法的默认实现按设置为 Context(如果有)筛选DbContext,然后记录事件。

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()

这是在属性上Log设置某些Action<T>日志格式化程序时使用的默认日志格式化程序。 通过创建继承自此类并重写部分或所有方法来更改行为的类,可以使用不同的格式化程序。

Write(String)

将给定字符串写入基础写入委托。

适用于