티스토리 뷰

python

python daily log file 생성 및 기록하기

사용자 fistful 2018. 5. 4. 13:37
반응형


목표

- 파이썬 프로그램에서 발생한 로그를 파일로 기록한다.

- 매일 새로운 파일이 생성되며, 생성날짜를 파일명에 넣고 싶다.

 

Snippets


Snippets 설명


1) logging logging handler import

- __init__.py 쓰지않으면 이렇게 하위 모듈 (= logging.handler) 별도로 가져와야 하는 경우도 있다.

 

2) logging.Formatter

- 어떤 형식으로 로그가 생성될지를 정한다

여기서는 로그 생성시간(ms 단위까지) + "," + 메시지 carLogFormatter 설정

- %(asctimes)s 로그가 기록되는 시간

- %(message)s 입력한 로그가 된다.

 

3) handler.TimedRotatingFileHandler

- 링크 참조: https://docs.python.org/3/library/logging.handlers.html#timedrotatingfilehandler

- 새로운 파일을 만드는 기준

- 저장할 파일명은 car.log

- when='midnight' 경우 매일밤 자정에 새로운 파일이 만들어진다.

- 이때 만들어지는 형식은 suffix 따라 설정된다.

예를 들면 여기서는 carLogHandler.suffix = "%Y%m%d" 이므로 car.log.20180504

-

4) 실제 사용할 logger 생성하고 설정

- carLogger 만들고

- 출력레벨을 INFO 이상으로 설정하고

- handler 추가

 

5) 실제 사용

- carLogger.info("car is coming") 라고 사용하면

- 2018-05-04 08:52:11, 599,car is coming 이라고 car.log 라는 파일에 저장이 된다.

12시가 지나면 car.log.20180504 같은 이름으로 다른 파일이 생성됨





반응형
댓글
  • 프로필사진 잼니 안녕하세요. 올려주신 글 잘 봤습니다.
    궁금한게 있어 댓글남깁니다.
    혹시 백업 된 'car.log.20180504' 파일의 사이즈가 줄어들거나 하는 문제는 없으셨나요?
    car.log 파일에 잘 기록되던게, 백업후엔 파일의 상단만 남아있습니다.
    혹시 비슷한 경험 있으시면 답변 부탁드립니다.
    감사합니다~
    2019.05.08 10:48
  • 프로필사진 사용자 fistful 안녕하세요. 댓글을 이제야 확인했습니다.
    다만 이 기능을 제가 수시로 사용하지는 않아서 해당 문제는 겪어보지 못하였습니다.
    2019.06.26 16:15 신고
  • 프로필사진 오디야 좋은 정보 감사합니다. 2019.06.26 11:00
  • 프로필사진 JH 로그파일을 열어보면 첫번쨰로그는 한번 두번째 로그는 두번 이런식으로 저장이 되던데 한번씩만 저장되게 할수는 없나요? 2020.02.07 11:57
댓글쓰기 폼