Notice
Recent Posts
Recent Comments
Link
관리 메뉴

one by one ◼◻◼◻

python logger사용하기 본문

유용한 기억

python logger사용하기

JihyunLee 2021. 11. 12. 16:06

python 에서 log를 만드는 (경험상) 가장 편리한 방법을 정리해 보았다.

 

왜 print()를 안쓰는가?

- print도 간단하고 좋은 방법이지만, 따로 관리하기 어렵고, 지저분하고.. 언제 남겨진 log인지 알아보기 힘든 단점이 있다!

 

logger를 쓰면 좋은점?

logger를사용하면 하나의 폴더안에 있는 다양한 모듈(main.py, util.py, dataset.py 등등..) 에서 하나의 logger를 사용할 수 있다.

큰 프로그램으 관리하기 쉬워진다 등등.. 여러 장점이 있다

 

 

사용방법

 

일단 폴더안에 아래 코드를 만든다.

log_conf.py

#/temp/log_conf.py

import logging

def init_logger():
    mylogger = logging.getLogger("my")
    mylogger.setLevel(logging.INFO)


    file_handler = logging.FileHandler('my.log')
    mylogger.addHandler(file_handler)

그리고 logger를 사용하고 싶은 폴더에다가

 

#/temp/main.py

from log_conf import init_logger

init_logger()
mylogger = logging.getLogger("my")

if __name__ == '__main__':
    mylogger.info("this is file 1")
    example()

를 추가하고, main.py를 실행해 보면 my.log에

this is file 1

이 출력되게 된다.

 

여러 파일에서 사용하기

여러 파일에서 사용하려면 일단 예시로 파일을 하나 만들어 준뒤

#/temp/ex2

import logging

mylogger = logging.getLogger("my")
def example():
    mylogger.info("This is file 2")

 

main파일에서 ex2파일을 사용하도록 수정해주고

from log_conf import init_logger
import logging
from ex2 import example
init_logger()
mylogger = logging.getLogger("my")

if __name__ == '__main__':
    mylogger.info("this is file 1")
    example()

 

 

main.py를 실행해 보면

 

 

이렇게 서로 다른 파일이라도 로그가 잘 합쳐져서 나온다.

 

formatter를 지정하면 아래처럼 좀더 자세한 로그를 만들 수 있고, vscode는 .log 확장자를 가진 파일이면 보기 쉽게 색이 칠해져서 나온다!

 

'유용한 기억' 카테고리의 다른 글

hugging face tokenizer에서 special case 추가하기  (0) 2022.01.03
Comments