Python logging 模組使用

G8bao7發表於2015-11-20

# 程式碼設定
【輸出到螢幕】

點選(此處)摺疊或開啟

  1. import logging
  2. logging.basicConfig(level=logging.INFO,
  3. format='%(asctime)s [%(levelname)s] %(filename)s[line:%(lineno)d] %(message)s',
  4. datefmt='%Y-%m-%d %H:%M:%S')
  5. logging.info("message")
  6. logging.warning("message")
  7. logging.error("message")



# 從配置檔案讀取

點選(此處)摺疊或開啟

  1. #!/usr/bin/env python
  2. # coding= utf-8
  3. import logging
  4. import logging.config
  5. logging.config.fileConfig("etc/logger.conf")
  6. lgs = "root,main,mysql,oracle,mongodb,os,alarm".split(",")
  7. for lg in lgs:
  8.     msg = "test '%s' logger..." % (lg)
  9.     lg_logger = logging.getLogger(lg)
  10.     lg_logger.debug(msg)
  11.     lg_logger.info(msg)



# 配置檔案 logger.cnf

點選(此處)摺疊或開啟

  1. ###############################################
    [loggers]
    keys=root,main,mysql,oracle,mongodb,os,alarm

    [logger_root]
    qualname=root
    level=DEBUG
    handlers=root,main

    [logger_main]
    qualname=main
    level=INFO
    handlers=root,main

    [logger_mysql]
    qualname=mysql
    level=INFO
    handlers=mysql

    [logger_oracle]
    qualname=oracle
    level=INFO
    handlers=oracle

    [logger_mongodb]
    qualname=mongodb
    level=INFO
    handlers=mongodb

    [logger_os]
    qualname=os
    level=INFO
    handlers=os

    [logger_alarm]
    qualname=alarm
    level=INFO
    handlers=alarm

    ###############################################
    [handlers]
    keys=root,main,mysql,oracle,mongodb,os,alarm

    [handler_root]
    class=StreamHandler
    formatter=form01
    args=(sys.stderr,)

    [handler_main]
    class=handlers.RotatingFileHandler
    formatter=form01
    # 超過20M切換,保留3份
    args=('logs/main.log', 'a', 20971520, 3)

    [handler_mysql]
    class=handlers.TimedRotatingFileHandler
    formatter=form02
    args=('logs/mysql.log', 'd', 1, 1)

    [handler_oracle]
    class=handlers.TimedRotatingFileHandler
    formatter=form02
    args=('logs/oracle.log', 'd', 1, 1)

    [handler_mongodb]
    class=handlers.TimedRotatingFileHandler
    formatter=form02
    # TimedRotatingFileHandler(filename, when='h', interval=1, backupCount=0, encoding=None, delay=False, utc=False)
    # 每天切換一次,保留一份備份
    args=('logs/mongodb.log', 'd', 1, 1)

    [handler_os]
    class=handlers.RotatingFileHandler
    formatter=form02
    # RotatingFileHandler(filename, mode='a', maxBytes=0, backupCount=0, encoding=None, delay=0)
    # 超過10M切換,保留3份
    args=('logs/os.log', 'a', 10485760, 3)

    [handler_alarm]
    class=handlers.RotatingFileHandler
    formatter=form02
    # 超過10M切換,保留1份
    args=('logs/alarm.log', 'a', 10485760, 1)

    ###############################################
    [formatters]
    keys=form01,form02

    [formatter_form01]
    format=%(asctime)s [%(levelname)s] %(message)s
    datefmt=%Y-%m-%d %H:%M:%S

    [formatter_form02]
    format=%(asctime)s [%(levelname)s] %(filename)s[line:%(lineno)d] %(message)s
    datefmt=%Y-%m-%d %H:%M:%S

Handler 說明 : 
formatter 屬性: 



來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26250550/viewspace-1842126/,如需轉載,請註明出處,否則將追究法律責任。

相關文章