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

python日志模块

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

python日志模块

import logging
from logging.handlers import RotatingFileHandler

def getLogging(file: str, console: bool):
    """
    获取日志对象
    :param file: 日志文件落盘地址
    :param console: 是否输出到控制台
    :return: 日志对象
    """
    logger = logging.getLogger(__name__)        # 获取logger对象
    logger.setLevel(level=logging.INFO)         # 设置日志打印级别,例如info级别可以打印info、warning、error
    formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')   # 日志格式
    # 如果当file满足1024KB之后,就转为备份文件file.1,重新写file。当file再满的时候,file.1变为file.2,file变为file.1,再重新写file
    # 这个底层其实不是真实复制文件,而只是重新命名了一下文件罢了
    sizeHandler = RotatingFileHandler(file, maxBytes=1024 * 1024, backupCount=10)
    sizeHandler.setLevel(logging.INFO)          # 设置文件打印级别
    sizeHandler.setFormatter(formatter)         # 设置文件打印格式
    logger.addHandler(sizeHandler)              # 日志对象添加文件打印

    if console:                                 # 是否输出到控制台
        console = logging.StreamHandler()       # 控制台打印对象
        console.setLevel(logging.INFO)          # 控制台打印级别
        console.setFormatter(formatter)         # 控制台打印设置日志格式
        logger.addHandler(console)              # 日志对象添加控制台打印

    return logger                               # 返回日志对象




# 参数:作用
#
# %(levelno)s:打印日志级别的数值
# %(levelname)s:打印日志级别的名称
# %(pathname)s:打印当前执行程序的路径,其实就是sys.argv[0]
# %(filename)s:打印当前执行程序名
# %(funcName)s:打印日志的当前函数
# %(lineno)d:打印日志的当前行号
# %(asctime)s:打印日志的时间
# %(thread)d:打印线程ID
# %(threadName)s:打印线程名称
# %(process)d:打印进程ID
# %(message)s:打印日志信息


# handler名称:位置;作用
#
# StreamHandler:logging.StreamHandler;日志输出到流,可以是sys.stderr,sys.stdout或者文件
# FileHandler:logging.FileHandler;日志输出到文件
# baseRotatingHandler:logging.handlers.baseRotatingHandler;基本的日志回滚方式
# RotatingHandler:logging.handlers.RotatingHandler;日志回滚方式,支持日志文件最大数量和日志文件回滚
# TimeRotatingHandler:logging.handlers.TimeRotatingHandler;日志回滚方式,在一定时间区域内回滚日志文件
# SocketHandler:logging.handlers.SocketHandler;远程输出日志到TCP/IP sockets
# DatagramHandler:logging.handlers.DatagramHandler;远程输出日志到UDP sockets
# SMTPHandler:logging.handlers.SMTPHandler;远程输出日志到邮件地址
# SysLogHandler:logging.handlers.SysLogHandler;日志输出到syslog
# NTEventLogHandler:logging.handlers.NTEventLogHandler;远程输出日志到Windows NT/2000/XP的事件日志
# MemoryHandler:logging.handlers.MemoryHandler;日志输出到内存中的指定buffer
# HTTPHandler:logging.handlers.HTTPHandler;通过"GET"或者"POST"远程输出到HTTP服务器

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

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

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