============================================================================
原創作品,允許轉載。轉載時請務必以超鏈接形式標明原始出處、以及本聲明。
請註明轉自:http://yunjianfei.iteye.com/blog/
============================================================================
日誌模塊在任何應用中都是不可缺的,我總結了下,日誌模塊主要應該有如下幾個功能:
1. 日誌分級,並且可以配置記錄或者顯示的日誌級別
2.日誌需要記錄到特定文件中(如果開了多個進程,則根據進程或者端口號標示)
3.日誌文件應該有定期清理或者大小限制等
根據這幾個特點,我提煉了一個常用的logging用法,如下:
#!/usr/bin/env python2.7
import logging,os,string
from logging import handlers
MODULE="test_logging"
LOG_LEVEL=logging.DEBUG
log_path="./"
#Init logging
def init_logging(mark):
log_file = MODULE + "." + str(mark) + ".log"
logger = logging.getLogger()
logger.setLevel(LOG_LEVEL)
#fh = logging.FileHandler(os.path.join(log_path, log_file))
fh = logging.handlers.TimedRotatingFileHandler(os.path.join(log_path, log_file), when='D', backupCount=10)
sh = logging.StreamHandler()
###########This set the logging level that show on the screen#############
#sh.setLevel(logging.DEBUG)
#sh.setLevel(logging.ERROR)
formatter = logging.Formatter('%(asctime)s -%(module)s:%(filename)s-L%(lineno)d-%(levelname)s: %(message)s')
fh.setFormatter(formatter)
sh.setFormatter(formatter)
logger.addHandler(fh)
logger.addHandler(sh)
logging.info("Current log level is : %s",logging.getLevelName(logger.getEffectiveLevel()))
init_logging("1234")