다음을 통해 공유


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 설정해야 합니다. 로깅/가로채기에 대한 보다 낮은 수준의 제어는 및 DbInterception를 참조하세요IDbCommandInterceptor. 인터셉터는 애플리케이션의 구성 파일에 등록할 수도 있습니다. Entity Framework 구성에 대한 자세한 내용은 를 참조하세요 http://go.microsoft.com/fwlink/?LinkId=260883 .

생성자

DatabaseLogFormatter(Action<String>)

필터링하지 않고 컨텍스트의 모든 명령과 컨텍스트에서 시작되지 DbContext 않는 명령도 기록하는 포맷터를 만듭니다.

DatabaseLogFormatter(DbContext, Action<String>)

지정된 DbContext instance 온 명령만 기록하는 포맷터를 만듭니다.

속성

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

명령 실행을 완료할 때마다 호출됩니다. 이 메서드의 기본 구현은 로 설정Context하여 DbContext 필터링하고, 있는 경우 를 호출합니다LogResult<TResult>(DbCommand, DbCommandInterceptionContext<TResult>). 이 메서드는 일반적으로 컨텍스트 필터링 동작을 변경하기 위해 재정의됩니다.

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

명령이 실행될 때마다 호출됩니다. 이 메서드의 기본 구현은 로 설정Context하여 DbContext 필터링하고, 있는 경우 를 호출합니다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() 전에 호출됩니다. 기본 구현은 에서 GetStopwatch(DbCommandInterceptionContext)반환된 스톱워치를 호출 Executing<TResult>(DbCommand, DbCommandInterceptionContext<TResult>) 하고 시작합니다.

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) 전에 호출됩니다. 기본 구현은 에서 GetStopwatch(DbCommandInterceptionContext)반환된 스톱워치를 호출 Executing<TResult>(DbCommand, DbCommandInterceptionContext<TResult>) 하고 시작합니다.

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() 전에 호출됩니다. 기본 구현은 에서 GetStopwatch(DbCommandInterceptionContext)반환된 스톱워치를 호출 Executing<TResult>(DbCommand, DbCommandInterceptionContext<TResult>) 하고 시작합니다.

ServerVersionGetting(DbConnection, DbConnectionInterceptionContext<String>)

재정의되지 않는 한 로그에 기록하지 않습니다.

ServerVersionGot(DbConnection, DbConnectionInterceptionContext<String>)

재정의되지 않는 한 로그에 기록하지 않습니다.

StateGetting(DbConnection, DbConnectionInterceptionContext<ConnectionState>)

재정의되지 않는 한 로그에 기록하지 않습니다.

StateGot(DbConnection, DbConnectionInterceptionContext<ConnectionState>)

재정의되지 않는 한 로그에 기록하지 않습니다.

ToString()

일부는 속성에 Log 설정 될 때 Action<T> 사용 되는 기본 로그 포맷터입니다. 이 클래스에서 상속하고 일부 또는 모든 메서드를 재정의하여 동작을 변경하는 클래스를 만들어 다른 포맷터를 사용할 수 있습니다.

Write(String)

지정된 문자열을 기본 쓰기 대리자에게 씁니다.

적용 대상