python logging标准模块 简单使用

python logging标准模块 简单使用,第1张

方法一:

import logging

# 记录器(笔)
log = logging.getLogger('log')
log.setLevel(logging.INFO)

# 处理器(发送)
Handler = logging.StreamHandler()
Handler.setLevel(logging.INFO)

# 创建日志文件
file = logging.FileHandler(filename='1_q.log', encoding="utf-8", mode="a")

# 日志格式设置
#  时间:          asctime
# 级别名称:       levelname
# 文件名字:       filename
# 程序行号:        lineno
# 自定义消息:      message
# 注意占位保持整齐
f = logging.Formatter("%(asctime)s%(levelname)sl%(filename)s:%(lineno)s1%(message)s")

# 处理器 设置格式
Handler.setFormatter(f)
# 日志文件 设置格式
file.setFormatter(f)

# 记录器设置处理器
log.addHandler(Handler)
log.addHandler(file)

# 过滤器 暂时不用


# 日志等级
# debug     debug用来打印一些调试信息,级别最低
# info      info,用来打印一些正常的 *** 作信息
# warning   waring,用来用来打印警告信息
# error     error,一般用来打印一些错误信息
# critical  critical,用来打印一些致命的错误信息,等级最高

log.debug('debug,用来打印一些调试信息,级别最低')
log.info('info,用来打印一些正常的 *** 作信息')
log.warning('waring,用来用来打印警告信息')
log.error('error,一般用来打印一些错误信息')
log.critical('critical,用来打印一些致命的错误信息,等级最高')

方法二:
设置配置文件:文件名:logging.conf

解释:

# 定义记录器
[loggers]           #固定写法
keys=root,applog    #创建2个app名,root是父类,必需存在的

# 定义处理器
[handlers]
keys=fileHandler,consoleHandler  # 定义了两个 分配给两个记录器

# 定义格式
[formatters]
keys=simpleFormatter

# 记录器1 的绑定
[logger_root]
level=DEBUG
handlers=consoleHandler

# 记录器2 的绑定
[logger_applog]
level=DEBUG
handlers=fileHandler,consoleHandler
qualname=applog   # 别名
propagate=0       # 0代表不继承

# 处理器 --
[handler_consoleHandler]
class=StreamHandler
args=(sys.stdout,)
level=DEBUG
formatter=simpleFormatter

# 处理器 --
[handler_fileHandler]
class=handlers.TimedRotatingFileHandler   # 时间规划
args=('applog', 'midnight',1,0)           # 每天midnight(午夜)分割 延迟1秒 备份个数 0为全部
level=DEBUG
formatters=simpleFormatter

# 格式 --
[formatter_simpleFormatter]
format=%(asctime)s|%(levelname)s|%(filename)s[:%(lineno)d]|%(message)s
datefmt=%Y-%m-%d %H:%M:%S

使用时:

[loggers]
keys=root,applog

[handlers]
keys=fileHandler,consoleHandler

[formatters]
keys=simpleFormatter

[logger_root]
level=DEBUG
handlers=consoleHandler

[logger_applog]
level=DEBUG
handlers=fileHandler,consoleHandler
qualname=applog
encoding="utf-8"
propagate=0


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


[handler_fileHandler]
class=handlers.TimedRotatingFileHandler
args=('applog', 'midnight',1,0)
level=DEBUG
formatters=simpleFormatter

[formatter_simpleFormatter]
format=%(asctime)s|%(levelname)8s|%(filename)8s[:%(lineno)d]|%(message)8s
datefmt=%Y-%m-%d %H:%M:%S

代码使用:

import logging.config

# 加载配置文件
logging.config.fileConfig('logging.conf')

# rootLogger = logging.getLogger()
# rootLogger.debug("的")

# 使用 applog 记录器记录
logger = logging.getLogger('applog')
logger.debug("3")

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/793516.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-06
下一篇 2022-05-06

发表评论

登录后才能评论

评论列表(0条)

保存