python logging应用_Python日志的使用,python,logging,用法

日志的类别

日志级别

描述

DEBUG

最详细的日志信息,典型应用场景是问题诊断

INFO

信息详细程度仅次于DEBUG,通常只记录关键节点信息

WARNING

当某些不期望的事情发生时记录的信息(如,磁盘可用空间较低),但是此时应用程序还是正常运行的

ERROR

由于一个更严重的问题导致某些功能不能正常运行时记录的信息

CRITICAL

当发生严重错误,导致运用程序不能继续运行时记录的信息

python中的具体用法

python中的日志是全局模型存在的,新建好了一个日志后,可以根据该日志对应的文件名字在其他脚本中获取,同时可以根据时间、日志数量或大小进行分多文件记录,下面通过代码进行简要的展示。

不分文件

# 日志记录时的时间格式

message_format = '%(asctime)s %(levelname)s %(pathname)s(line:%(lineno)d) %(message)s'

def getLog(log_path, filename="single.log"):

'''

根据日志文件名称获取日志,如果该日志不存在,则新建一个

'''

# 设计日置级别,格式

log_file = os.path.join(log_path,filename)

logging.basicConfig(level=logging.INFO,format=message_format)

#根据日志名称获取对应日志

log=logging.getLogger(filename)

if not log.handlers: #避免重复加载handler

file= logging.FileHandler(log_file,encoding='utf-8')

file.setFormatter(logging.Formatter(message_format))

log.addHandler(file)

return log

按时间进行多文件记录

# 日志记录时的时间格式

message_format = '%(asctime)s %(levelname)s %(pathname)s(line:%(lineno)d) %(message)s'

def getTimeLog(log_path, filename="time.log",when="S"):

# 参数when的选择范围如下:

# S - Seconds

# M - Minutes

# H - Hours(默认)

# D - Days

# midnight - roll over at midnight

# W{0-6} - roll over on a certain day; 0 - Monday

log_file = os.path.join(log_path,filename)

logging.basicConfig(level=logging.INFO,format=message_format)

log = logging.getLogger(filename)

if not log.handlers:

file =logging.handlers.TimedRotatingFileHandler(log_file,when=when,encoding='utf-8')

file.setFormatter(logging.Formatter(message_format))

log.addHandler(file)

return log

按文件大小、数量进行多文件记录

message_format = '%(asctime)s %(levelname)s %(pathname)s(line:%(lineno)d) %(message)s'

def getFileSizeLog(log_path, filename="size.log",filesize=100*1024*1024,backupCount=30):

'''

filesize:单个日志文件最大值,单位是bytes,默认100*1024*1024=100M

backupCount:存储拆分文件个数,如果总的容量不够,会删除最开始的日志文件

'''

log_file = os.path.join(log_path,filename)

logging.basicConfig(level=logging.INFO, format=message_format)

log = logging.getLogger(filename)

#定义过滤条件

if not log.handlers:

file=logging.handlers.RotatingFileHandler(log_file,maxBytes=filesize,backupCount=backupCount,encoding='utf-8')

file.setFormatter(logging.Formatter(message_format))

log.addHandler(file)

return log

更全面的Python日志详解请参考:https://www.cnblogs.com/yyds/p/6901864.html

https://www.cnblogs.com/nancyzhu/p/8551506.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值