[ Python ] logging 결과물 폴더 생성 후 압축 파일로 저장하기
2019. 12. 9. 17:44ㆍ분석 Python/구현 및 자료
도움이 되셨다면, 광고 한번만 눌러주세요. 블로그 관리에 큰 힘이 됩니다 ^^
파이썬에서 Logging을 하고 싶을 때가 있다.
그냥 저장하는 것은 쉽지만, 그러다 보면, 용량을 과하게 차지하니 압축을 해서 저장을 하고 싶어 진다.
그리고 이것을 언제 저장했는지 구별하고 싶어서 압축 시점 날짜 폴더를 생성 후 그 안에 압축 파일을 넣어야 했다.
기존 방식으로는 안됬기 때문에 먼가 수정이 필요했다. 그리고 정답까지는 아니겠지만, 이런 식으로 하니 문제를 해결할 수 있었다
여기서는 분 단위로 저장하게 했다.
import logging
import gzip, zlib
import os
from datetime import datetime as dt
def namer(name) :
return name + ".gz"
def rotator(source , dest ) :
split = dest.split("/")
dir_ = "/".join( split[:-1] )
dest_dir = os.path.join( dir_, dt.now().strftime("%Y-%m"))
if not os.path.exists(dest_dir) : os.makedirs(dest_dir)
else : pass
dest =\
os.path.join( dest_dir , dt.now().strftime("%m-%d-%Y-%H%M") + "-" + split[-1] )
print(f"compressing {source} -> {dest}")
with open(source , "rb") as sf :
data = sf.read()
compressed = zlib.compress(data, 9 )
with open(dest , "wb" ) as df :
df.write(compressed)
os.remove(source)
log = logging.getLogger("test")
log.setLevel(logging.DEBUG)
FileHandler = logging.handlers.RotatingFileHandler(
filename = "./filelog.txt" ,
mode ="w",
backupCount = 5 ,
maxBytes = 10 ,
encoding="utf-8"
)
FileHandler.setLevel(logging.DEBUG)
FileHandler.rotator = rotator
FileHandler.namer= namer
log.addHandler(FileHandler)
for i in range(100) :
log.debug("hi")
끝
728x90
'분석 Python > 구현 및 자료' 카테고리의 다른 글
[ Python ] 동적 변수 할당 및 불러들이기 (1) | 2019.12.15 |
---|---|
[ Python ] H2O XGBOOST Practice (0) | 2019.12.15 |
[ Python ] smtplib를 이용해서 html 메일로 보내기 (0) | 2019.11.24 |
[ Python ] Thread 간에 결과값 Queue로 전달 (0) | 2019.11.22 |
[ Python ] 파일 폴더 관리시 자주 사용하는 것 (0) | 2019.10.31 |