2011-05-03 5 views
4


우리는 Entity Framework 4.0을 사용하고 있습니다. 프로덕션 환경에서 문제가 발생하면 모든 SQL 문에 대한 로깅을 일시적으로 사용 가능하게하고 싶습니다. SQL 프로필러를 실행하기 위해 프로덕션 SQL Server에 대한 사용 권한이 없습니다.프로덕션 환경에서 Entity Framework SQL 로깅을 효율적으로 지원하려면 어떻게해야합니까?

(a) 구성 파일 설정을 통해 켜고 끌 수 있으며 (b) 꺼져있을 때 상당한 오버 헤드가 추가되지 않는 양호한 로깅 옵션이 있습니까?

나는 Tracing and Caching Provider Wrappers for Entity Framework에 관해 읽었습니다. 이것은 좋은 것처럼 들리지만 샘플 코드이며 공식적으로 지원되지 않습니다. 따라서 생산에 적합한 지 확실하지 않습니다. 로깅이 꺼져 있어도 래퍼가 너무 많은 오버 헤드를 추가하는지 여부는 알 수 없습니다. 누구나이 래퍼에 대해 좋은 경험을 했나요? 당신의 도움에 대한


감사합니다,
리처드

+1

"SQL 프로필러를 실행하기 위해 프로덕션 SQL Server에 대한 사용 권한이 충분하지 않습니다." - TRACE를 요청 했습니까? 그 긴 샷, 대부분의 DBA는 그것을주지 않을 것이지만, agaian을 끄는 것은 쉽습니다 .... [Entity framework and queries 'SQL logging]의 가능한 복제본 –

+0

(http://stackoverflow.com/questions/174261)/entity-framework-and-queries-sql-logging) –

+0

추적 공급자 래퍼는 공식적으로 지원되지 않지만 다른 것과 같은 코드입니다. 로깅을 원할 경우 사용하거나 직접 동일한 코드를 작성하면 여전히 "지원되지 않음"입니다. –

답변

3

는 코드 샘플은 released in a NuGet package을하고있다. 파일/콘솔 로깅 대신 TraceSource을 사용하여 내장 된 .NET 추적 시스템과 연결되도록 약간 수정되었습니다.

저는 여러 프로젝트에서이 파일을 사용했으며 도움이되었습니다. 다른 TraceSource처럼 app.config/web.config에서도 활성화/비활성화 할 수 있습니다.

성능 문제는 없지만 단일 사용자 시나리오에서만 사용하고 있습니다.

+0

감사합니다. 그거 알아두면 좋을거야. 어쩌면 우리는 여전히 그것을 시도해야합니다 ... –

관련 문제