python log日志

小咪咪 2022-06-01 09:56 412阅读 0赞

python 日志管理,可通过引入logging包,实现日志管理

一、配置文件

  • 创建一个配置文件,如logging.conf

    [loggers]
    keys=root,console,file

    [logger_root]
    level=DEBUG
    handlers=rootHandler
    formatter=rootFormatter

    [logger_console]
    level=DEBUG
    handlers=consoleHandler
    formatter=consoleFormatter
    qualname=console

    [logger_file]
    level=DEBUG
    handlers=fileHandler
    formatter=fileFormatter
    qualname=file

    [handlers]
    keys=rootHandler,consoleHandler,fileHandler

    [handler_rootHandler]
    class=StreamHandler
    level=DEBUG
    formatter=rootFormatter
    args=(sys.stdout,)

    [handler_consoleHandler]
    class=StreamHandler
    level=DEBUG
    formatter=consoleFormatter
    args=(sys.stdout,)

    [handler_fileHandler]
    class=FileHandler
    level=DEBUG
    formatter=fileFormatter
    args=(“./log.log”,”a”)

    [formatters]
    keys=rootFormatter,consoleFormatter,fileFormatter

    [formatter_rootFormatter]
    format=[%(asctime)s][%(filename)s][line:%(lineno)d][%(levelname)s] %(message)s
    datefmt=%a, %d %b %Y %H:%M:%S

    [formatter_consoleFormatter]
    format=[%(asctime)s][%(filename)s][line:%(lineno)d][%(levelname)s] %(message)s
    datefmt=%a, %d %b %Y %H:%M:%S

    [formatter_fileFormatter]
    format=[%(asctime)s][%(filename)s][line:%(lineno)d][%(levelname)s] %(message)s
    datefmt=%a, %d %b %Y %H:%M:%S

  • 调用log即可

  • import logging.config

    logging.config.fileConfig(“./logging.conf”)

    logger = logging.getLogger(‘file’)
    logger.debug(“debug message”)
    logger.info(“info message”)
    logger.warn(“warn message”)
    logger.warning(“warning message”)
    logger.critical(“critical message”)

二、不用配置文件,直接撸代码

  1. import logging
  2. from colorlog import ColoredFormatter
  3. def create_console_formatter(formatter='%(log_color)s[%(asctime)s][%(filename)s][line:%(lineno)d][%(levelname)s] %(message)s'):
  4. return formatter
  5. def create_file_formatter(formatter='%(log_color)s[%(asctime)s][%(filename)s][line:%(lineno)d][%(levelname)s] %(message)s'):
  6. return formatter
  7. #color不同level,不同颜色
  8. def color_formatter(formatter):
  9. return ColoredFormatter(formatter)
  10. def create_console_handler(formatter=ColoredFormatter(create_console_formatter()), level=logging.DEBUG):
  11. console_handler = logging.StreamHandler()
  12. console_handler.setLevel(level)
  13. console_handler.setFormatter(formatter)
  14. return console_handler
  15. def create_file_handler(formatter=ColoredFormatter(create_console_formatter()), level=logging.DEBUG,
  16. log_file='./log.log', mode='a',encoding='UTF-8'):
  17. file_handler = logging.FileHandler(log_file, mode, encoding)
  18. file_handler.setLevel(level)
  19. file_handler.setFormatter(formatter)
  20. return file_handler

调用时,直接引入即可

  1. console_handler = create_console_handler()
  2. file_handler = create_file_handler()
  3. logger = logging.getLogger("console")
  4. logger.setLevel(logging.DEBUG)
  5. logger.addHandler(console_handler)
  6. logger.addHandler(file_handler)
  7. logger.debug("debug")
  8. logger.info("info")
  9. logger.warning("warning")
  10. logger.error("error")
  11. logger.critical("critical")

也可进一步封装方便调用

发表评论

表情:
评论列表 (有 0 条评论,412人围观)

还没有评论,来说两句吧...

相关阅读

    相关 python log

    python 日志管理,可通过引入logging包,实现日志管理 一、配置文件 创建一个配置文件,如logging.conf [loggers] k