댕댕워크 프로젝트에서 불필요한 Query를 줄이고 Query 성능을 개선하기 위해 query log를 찍어보기로 했다.
DataSource
option을 다음과 같이 주면 가장 가까운 package.json
파일이 존재하는 root 폴더에 ormlogs.log
라는 파일이 생성되며 여기에 query log가 저장된다.
{
host: "localhost",
...
logging: true,
logger: "file"
}
파일 경로를 바꾸고 싶으면 logger에 Logger
instance를 넘기면 되고 해당 logger에 첫 번째 인자로 LoggerOptions = boolean | "all" | LogLevel[]
를 넣어주면 되므로 option에서 logging field는 사용하지 않아도 된다.
공식 문서에서는 Custom logger를 따로 구현하도록 설명하고 있지만 나는 간단히 typeorm의 FileLogger
를 사용했다. FileLogger
의 두 번째 인자인 FileLoggerOptions = { logPath: string; }
를 통해 log 파일의 custom path를 지정해줄 수 있다.
{
host: "localhost",
...
logger: logger: new FileLogger(true, { logPath: `log/ormlogs.${nodeEnv}.log` })
}
나는 테스트용으로 사용할거라 간단히 환경 별로 log 파일이 생성되도록 했다.
잘 생성되는 것을 확인할 수 있다. 😄