카테고리 없음
취업준비 20일) 오늘의 할 일 + TIL - sql, sequelize 적용한 CRUD프로젝트2(sql로그파일)
뽀짝코딩
2022. 5. 5. 10:43
728x90
오늘의 할 일
1. 게시판 api
오늘의 스케줄
08:30 - 기상
오늘 배운 것
1. 쿼리 실행시 sequelize가 콘솔에 SQL을 출력하지 못하게 하는 방법
1). ‘config / config.json’파일이 사용되는 경우이 경우 개발 구성 섹션에서 config.json에 ‘logging’: false를 추가.
// file config/config.json
{
{
"development": {
"username": "username",
"password": "password",
"database": "db_name",
"host": "127.0.0.1",
"dialect": "mysql",
"logging": false
},
"test": {
...
}
2). https://sequelize.org/v3/api/sequelize/index.html?highlight=logging
Sequelize 객체를 만들 때 매개 변수로 전달 false하십시오 logging.
var sequelize = new Sequelize('database', 'username', 'password', {
// disable logging; default: console.log
logging: false
});
2. moment 모듈을 이용해서 sql 로그파일 따로 관리는 방법
models > index.js
const moment = require('moment'); // 로그. moment 모듈 설치해야함
const date = moment().format('YYYY[_]MM[_]DD'); // 파일이름
const time = moment().format('H:mm:ss'); // 로그 작성시간
const dir = './log/sequelize/'; // 파일 저장될 폴더 경로
if (!fs.existsSync(dir)) { // 동기방식이라는 점 고려
fs.mkdirSync(dir, { //mkdirSync(/...)로 경로 체크 후, 폴더 내에 로그 파일을 생성. 출처: https://gngsn.tistory.com/70?category=851217 [pageseo]
recursive: true // 여러 계층의 파일 구조를 한 번에 생성가능. recursive 옵션은 log와 sequelize폴더를 한 번에 만듬
});
}
const log = fs.createWriteStream(dir +`${date}.log`, {'flags': 'a'}); // date를 이름으로 하는 log확장자 파일
log.write(`\n\n[${time}]\n`); // time으로 현재시간 표시
config.logging = msg => log.write(`${msg}\n`); // msg인자를 파일에 적음
참고
*쿼리 로그 log 파일관리--댓글답변빠름.👍
https://gngsn.tistory.com/70?category=851217
반응형