코딩을 하고 배치로 파일을 실행하는 경우, 로그를 남겨야 한다. 실행 중에 발생한 오류나 이상을 알 수 있기 때문이다. 배치는 사람의 개입 없이 스케쥴에 따라 실행하는 작업을 말한다.

 

파이썬에는 logging이라는 모듈이 있어, 로그를 남기기 쉽다. 레벨을 지정해서 출력할 수 있고, 쉽게 파일로 저장도 가능하다. 하지만, logging 모듈을 사용하다보면 아쉬움이 남는다.

 

오늘은 logging모듈을 이용해서 로그 파일을 만드는 법과 더 쉽게 해 볼 수 있는 방법에 대해서 알아보겠다.

 

 

 

 

1. logging 모듈 이용하기

logging 모듈 사용방법은 이전 포스팅에서 자세히 다루었으니 참고하기 바란다.
( 참조: 파이썬 실행 로그를 남겨보자, logging 모듈 이용하기! )

 

logging을 이용할 때의 장점은 로그를 잘 남길 수 있다는 것이다. format을 지정하면 log가 발생한 시점도 알 수 있고, 레벨을 이용해서 출력할 로그를 지정할 수도 있다.


단점은 print함수를 이용하는 것보다 조금 번거롭다는 점이다. 하지만 익숙해지면 큰 문제는 되지 않는다.

 

 

파이썬-logging-모듈
logging, 로그를 기록하기 위해 가장 많이 사용하는 모듈이다.

 

 

2. print함수를 이용해서 로그 파일 기록하기

파이썬 실행시 &기호를 이용하면 백그라운드에서 실행된다. 터미널이나 명령 프롬프트가 종료되도 파이썬 코드는 실행되고 있다.

 

코드를 실행할 때 >> 기호를 이용하면, print한 내용을 파일로 기록할 수 있다. 예를 들어 아래와 같이 코드를 실행하면 된다.

 

python test.py >> test.log

 

파이썬 코드를 백그라운드에서 실행하고 쉽다면 뒤에 &기호를 붙인다.

 

python test.py >> test.log &

 

 

이 방법의 장점은 쉽고 간단하다는 것이다. print함수의 내용이 파일로 저장되기 때문에, Console모드에서 실행할 때도 쉽게 사용할 수 있다.

 

단점은 logging 모듈을 이용할 때처럼 신속하게 로그가 남지는 않는다는 점이다. 일정 시점에 몰아서 기록되고, 코드가 에러가 나서 종료된다면 어떤 메시지도 보지 못할 수도 있다.


오늘은 이렇게 파이썬 로그 파일 기록하는 2가지 방법에 대해서 알아보았다. 로그를 정확하게 남겨야 되면 logging 모듈을 이용하는 것이 좋다.


하지만 에러 발생의 가능성이 적고, 이미 print문을 많이 작성해 놓은 상황이라면 두 번째 방법을 이용해서 로그를 남기는 것도 유용하다.

  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기