언어/Python
[Python]간단한 파일 입출력, 로그찍기 (RotatingFileHandler)
개발자국S2
2022. 11. 16. 10:56
import logging
from logging.handlers import RotatingFileHandler
def log_initialize():
logger = logging.getLogger()
logger.setLevel(logging.INFO)
formatter = logging.Formatter('%(asctime)s - %(levelname)s - %(message)s')
stream_handler = logging.StreamHandler()
stream_handler.setFormatter(formatter)
logger.addHandler(stream_handler)
# 로그 파일 일반 저장
file_handler = logging.FileHandler('C:/project/result/LOGFILE.log')
# 로그 파일 순환 저장 : 용량에 따라 로그 파일 분할
file_handler = RotatingFileHandler('C:/project/result/Rotating.log', maxBytes=1048576, backupCount=5)
file_handler.setFormatter(formatter)
logger.addHandler(file_handler)
def create_newfile():
logging.info('function started')
readfile()
logging.info('function ended')
def readfile():
logging.info('read started')
rfile = open('C:/project/emp_20221115.txt','r')
logging.info('read ended')
change_file(rfile)
def change_file(rfile):
logging.info('change started')
cfile = rfile.read().replace(',', '|')
logging.info('change ended')
save_file(cfile)
def save_file(cfile):
logging.info('new file saved')
f = open('C:/project/result/newfile.txt', 'w')
f.write(cfile)
f.close()
logging.info('file saved')
# Press the green button in the gutter to run the script.
if __name__ == '__main__':
log_initialize()
create_newfile()
결과 (maxByte를 1, backupCount=2로 설정했을때)
해당 Byte를 넘으면 다시 처음파일로 돌아가서 저장하는 순환구조
반응형