-
<PYTHON>[LOG]Flower in my dev/Python 2015. 9. 11. 16:42
[LOG]
기본적으로 파이썬에서는 logging 모듈을 제공한다.
logging 모듈을 사용하여 로그를 남겨보고
logging 모듈에서 제공하는 순환 함수로 로그 파일을 돌려보고
file을 직접 열어서 로그 파일을 돌려본다.
순환방법은 두가지..
1. 기록되는 파일의 이름이 바뀌지 않는 logging 모듈의 순환
2. 기록되는 파일의 이름이 조건에 의해 새로워지는 file 활용 순환
-default logging
12345678910111213141516171819202122232425262728293031323334353637383940414243# -*- coding: utf-8 -*-import loggingimport logging.handlerslogger = logging.getLogger('flower')FM = logging.Formatter('[%(levelname)s| %(lineno)s] %(asctime)s > %(message)s')FH = logging.FileHandler('./flower.log')SH = logging.StreamHandler()FH.setFormatter(FM)SH.setFormatter(FM)logger.addHandler(FH)logger.addHandler(SH)logger.setLevel(logging.DEBUG)i = 0while True:s = 'log number : ' + str(i)if i == 0:logger.info(s)i += 1elif i == 1:logger.warning(s)i += 1elif i == 2:logger.error(s)i += 1elif i == 3:logger.critical(s)i += 1elif i == 4:logger.debug(s)i += 1elif i == 5:logger.info(s)i += 1else:i = 0cs -rotation_1
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849# -*- coding: utf-8 -*-import loggingimport logging.handlersfName = './flower.log'fCnt = 5logger = logging.getLogger('flower')FM = logging.Formatter('[%(levelname)s %(lineno)s] %(asctime)s > %(message)s')fSize = 1024 * 1024 #1MB#fSize = 1024 * 1024 * 10 #10MB#fSize = 1024 * 1024 * 100 #100MBFH = logging.handlers.RotatingFileHandler(fName, maxBytes=fSize, backupCount=fCnt)SH = logging.StreamHandler()FH.setFormatter(FM)SH.setFormatter(FM)logger.addHandler(FH)logger.addHandler(SH)i = 0while True:s = 'log number : ' + str(i)if i == 0:logger.info(s)i += 1elif i == 1:logger.warning(s)i += 1elif i == 2:logger.error(s)i += 1elif i == 3:logger.critical(s)i += 1elif i == 4:logger.debug(s)i += 1elif i == 5:logger.info(s)i += 1else:i = 0cs 위에서는 logging 모듈을 사용했고 아래에서는
파일을 열고 쓰는 기본(?) 방식이다.
(내가 원하는 것을 찾지 못하여..)
-rotation_2
123456789101112131415161718192021222324# -*- coding: utf-8 -*-import osimport randomfrom time import localtime, strftime, sleepDP = '/home'FN = 'flower.log'LOG = 'Success!'fCnt = 0fName = os.path.join(DP, (strftime('%Y%m%d%H%M%S_', localtime()) + FN))while True:if fCnt == 0:f = open(fName, 'a')f.write(LOG + '\n')fCnt += 1#sec = random.randrange(0, 3)#sleep(sec)if fCnt == 3000:f.close()fName = os.path.join(DP, (strftime('%Y%m%d%H%M%S_', localtime()) + FN))fCnt = 0cs 'Flower in my dev > Python' 카테고리의 다른 글
<PYTHON>[개발관련패키지] (0) 2015.11.17 <PYTHON>[pip 설치 01] (0) 2015.11.17 <PYTHON>[pygoogle] (0) 2015.09.09 <PYTHON>[pygeoip] (0) 2015.09.09 <PYTHON>[cPickle][msgpack][marshal] (0) 2015.09.09