美文网首页
python日志模块

python日志模块

作者: 风驰电掣一瓜牛 | 来源:发表于2017-06-01 14:12 被阅读0次

目前有一种需求是启动一个server,记录每天的访问情况,查下了下资料,用python的logging模块可以实现。

具体来说是使用TimedRotatingFileHandler 这个文件处理器,代码如下:

logger = logging.getLogger(__name__)
logger.setLevel(logging.DEBUG)

log_path = "./log/run.log"
fh = logging.handlers.TimedRotatingFileHandler(filename=log_path, when='midnight', backupCount=5)
fh.suffix = "%Y-%m-%d"
fh.setLevel(logging.DEBUG)

fmt = "%(asctime)-15s %(filename)s:%(lineno)d %(levelname)s %(message)s"
datefmt = "%Y-%m-%d %H:%M:%S"
formatter = logging.Formatter(fmt, datefmt)

fh.setFormatter(formatter)
logger.addHandler(fh)

一般通过模块名称获取logger,这样有一种层级关系,可以继承上层模块的设置。

TimedRotatingFileHandler()的第一个参数filename设定日志路径;when设定循环日志的更新时间,一般设置为midnight比较好,即每天凌晨0点更新,网上说设定其他的值会有些坑,时间上会有些不一致;bacupCount设定循环周期内的文件数。

采用上面代码中的设定,运行后会在log目录下创建日志文件run.log,当天产生的日志会输出到这个文件,到凌晨这个文件会变成昨天日期的文件。因为backupCount设置为5,所以最后log目录下会始终保持6个文件:

run.log.2017-06-01
run.log.2017-06-02
run.log.2017-06-03
run.log.2017-06-04
run.log.2017-06-05
run.log

还有很多其他的日志处理器,可以根据不同的用处设定。

另外日志模块还可以涉及多线程,多模块,添加过滤器,从json或yaml文件读取配置等技术点,有需要再深入学习下。

其他参考:

相关文章

  • Python 中的 logging 模块 学习

    参考资料: Python中的logging模块 python 的日志logging模块学习 python logg...

  • logging模块

    简介 logging模块是python日志管理模块 使用 日志级别: CRITICAL > ERROR > WAR...

  • Python日志处理logging

    参考: Python之日志处理(logging模块)

  • Django中的日志系统章

    Python日志系统 Django使用logging模块记录日志。Python的日志系统分为4块。分别是:logg...

  • logging模块

    (一)什么是logging模块? logging是Python内置的日志模块,用于生成程序的日志 (二...

  • 1-logging模块

    1 logging模块简介 logging模块是Python内置的标准模块,主要用于输出运行日志,可以设置输出日志...

  • Python 标准库模块 - logging

    logging 模块是 Python 内置的标准模块,主要用于输出运行日志,可以设置输出日志的等级、日志保存路径、...

  • Python日志处理模块loggin

        logging模块是Python内置的标准模块,主要用于输出运行日志,可以设置输出日志的等级、日志保存路径...

  • 2019-03-04 Python标准模块logging的使用

    logging模块简介 logging模块是Python内置的标准模块,主要用于输出运行日志,可以设置输出日志的等...

  • python logging模块使用

    参考资料 Python之日志处理(logging模块) Python之向日志输出中添加上下文信息 Python之配...

网友评论

      本文标题:python日志模块

      本文链接:https://www.haomeiwen.com/subject/flfefxtx.html