#! /usr/bin/env python
# coding: utf-8
import os
import logging
class MyLogger(logging.Logger):
def __init__(self, filename='log/test.log',streamlevel=logging.DEBUG,filelevel=logging.INFO):
# super(MyLogger, self).__init__(filename)
logging.Logger.__init__(self, filename)
# 設置日誌格式
fmtHandler = logging.Formatter('%(asctime)s [%(filename)s:%(lineno)s][%(levelname)s] %(message)s')
# 終端log輸出流設置
try:
consoleHd = logging.StreamHandler()
consoleHd.setLevel(streamlevel)
consoleHd.setFormatter(fmtHandler)
self.addHandler(consoleHd)
except Exception as reason:
self.error("%s" % reason)
# 設置log文件
try:
os.makedirs(os.path.dirname(filename))
except Exception as reason:
pass
try:
fileHd = logging.FileHandler(filename)
fileHd.setLevel(filelevel)
fileHd.setFormatter(fmtHandler)
self.addHandler(fileHd)
except Exception as reason:
self.error("%s" % reason)
return
# 設置回滾日誌,每個日誌最大10M,最多備份5個日誌
try:
rtfHandler = logging.BaseRotatingHandler(
filename, maxBytes=10*1024*1024, backupCount=5)
except Exception as reason:
self.error("%s" % reason)
else:
self.addHandler(rtfHandler)
def main():
logfile1 = 'log/test1.log'
logger1 = MyLogger(logfile1,logging.DEBUG,logging.INFO)
logger1.debug("debug msg")
logger1.info("info msg")
logger1.warning("warning msg")
logger1.error("error msg")
logger1.critical("critical msg")
logfile2 = 'log/test2.log'
logger1 = MyLogger(logfile2)
logger1.debug("debug msg")
logger1.info("info msg")
logger1.warning("warning msg")
logger1.error("error msg")
logger1.critical("critical msg")
if __name__ == '__main__':
main()
python LOG系統
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.