栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

python logging模块默认日志_python中的logging记录日志?

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python logging模块默认日志_python中的logging记录日志?

一、设置日志定时更新轮换,并定时删除
import logging
from logging.handlers import TimedRotatingFileHandler
def setup_log():
    # 定义日志输出格式
    fmt_str = '%(asctime)s[level-%(levelname)s][%(name)s]:%(message)s'
    logging.basicConfig(level=logging.INFO)
    # when可设置月、日、时、分、秒等; interval: n个when更新一次; backupCount: 保留m个文件
    files_handle = TimedRotatingFileHandler(path_log, when='S', interval=5, backupCount=7)  # when S M H D midnight
    # 注意时间的格式,区别 - 和 _ , 格式不对影响日志的删除
    files_handle.suffix = "%Y-%m-%d_%H-%M-%S.txt"
    # 设置日志输出级别和格式
    # files_handle.setLevel(logging.DEBUG)
    formatter = logging.Formatter(fmt_str)
    files_handle.setFormatter(formatter)
    # 添加到日志处理对象集合
    logging.getLogger('').addHandler(files_handle)


if __name__ == '__main__':
    setup_log()
    logging.info("程序开始启动")
二、多进程中logging的保存问题

非主线进程无法保存logging,没找到怎么设置,选择了一种简单粗暴的方式

在进程中将想要保存的日志信息存入队列中,在主线中使用while循环从队列中取出日志信息,使用logging写入文件

示例代码:

q_logs = multiprocessing.Queue()

def log_test():
    for i in range(10):
        q_logs.put(("DEBUG", "DEBUG"))
        q_logs.put(("INFO", "INFO!"))
        q_logs.put(("WARNING", "WARNING!!"))
        q_logs.put(("ERROR", "ERROR!!!"))
        q_logs.put(("CRITICAL", "CRITICAL!!!!"))
        time.sleep(5)
    
def log_write():  
    while True:
        log_leval, log_info = q_logs.get()
        if log_leval == "INFO":
            logging.info(log_info)
        elif log_leval == "WARNING":
            logging.warning(log_info)
        elif log_leval == "ERROR":
            logging.error(log_info)
        elif log_leval == "CRITICAL":
            logging.critical(log_info)
        elif log_leval == "DEBUG":
            logging.debug(log_info)

if __name__ == '__main__':
    # setup_log()
    logging.info("程序开始启动")
    m_test = multiprocessing.Process(target=log_test)
    m_test.start()
    log_write()

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/783059.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号