코딩기록

취업준비 20일) 오늘의 할 일 + TIL - sql, sequelize 적용한 CRUD프로젝트2(sql로그파일) 본문

카테고리 없음

취업준비 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

 

 

반응형
Comments