entgo query debug mode

dasd412·2024년 8월 31일
0

golang

목록 보기
2/5

entgo는 JPA처럼 ORM이다.

JPA에서 .properties를 활용하여 ORM이 자동 생성하는 쿼리를 로깅하는 것 처럼 entgo도 해당 기능을 제공한다. 문서화가 좋지 않을 뿐이지만...

다음은 entgo가 자동 생성하는 쿼리마다 어떤 쿼리가 나오는지 터미널에 로깅하는 기능, 그리고 그 쿼리가 얼마나 실행 시간이 걸렸는지를 로깅하는 기능이 있는 코드다.

func createEntClient(master *sql.Driver, replica *sql.Driver) *ent.Client {
	return ent.NewClient(
		ent.Driver(
			&db.Drivers{
				Master:  master,
				Replica: replica,
			},
		),
		ent.Debug(),
		ent.Log(
			func(query ...any) {
				start := time.Now()
				duration := time.Since(start)
				log.Printf("took: %v , entgo: %v ", duration, query)
			},
		),
	)
}
profile
시스템 아키텍쳐 설계에 관심이 많은 백엔드 개발자입니다. (Go/Python/MSA/graphql/Spring)

0개의 댓글