Python logging 模块使用


# 代码设置
【输出到屏幕】

点击(此处)折叠或打开

  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 说明 : https://docs.python.org/2/library/logging.handlers.html
formatter 属性: https://docs.python.org/2/library/logging.html#logging.LogRecord



来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/26250550/viewspace-1842126/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/26250550/viewspace-1842126/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值