标签:led cname core bottom strong 级别 class read secondary
python的logging模块
日志级别 | 含义 |
debug | 详细信息,典型地调试问题时会感兴趣。 |
info | 证明事情按预期工作。 |
warning | 表明发生了一些意外,或者不久的将来会发生问题(如‘磁盘满了’)。软件还是在正常工作。 |
error | 由于更严重的问题,软件已不能执行一些功能了。 |
fatal | 严重错误,表明软件已不能继续运行了。 |
"""
v1: 练习python的日志生成
"""
import logging # 导入logging模块,学习改模块
logging.debug("这个是debug级别的日志")
logging.info("这个是info级别的日志")
logging.warning("这个是warning级别的日志")
logging.error("这个是error级别的日志")
logging.fatal("这个是fatal级别的日志")
# 默认配置下,只输出warning及以上级别的日志
# 默认情况下,logging模块将日志打印到屏幕上(stdout),
# 日志级别为WARNING(即只有日志级别高于WARNING的日志信息才会输出),日志格式如下图所示:
"""
WARNING:root:这个是warning级别的日志
ERROR:root:这个是error级别的日志
CRITICAL:root:这个是fatal级别的日志
"""
"""
v1: 练习python的日志生成,并配置一下log
"""
import logging
logging.basicConfig(filename=‘logfile.log‘, filemode=‘a‘, level=logging.DEBUG)
"""
basicConfig()函数的基本用法
filename Specifies that a FileHandler be created, using the specified
filename, rather than a StreamHandler.
filemode Specifies the mode to open the file, if filename is specified
(if filemode is unspecified, it defaults to ‘a‘).
format Use the specified format string for the handler.
datefmt Use the specified date/time format.
style If a format string is specified, use this to specify the
type of format string (possible values ‘%‘, ‘{‘, ‘$‘, for
%-formatting, :meth:`str.format` and :class:`string.Template`
- defaults to ‘%‘).
level Set the root logger level to the specified level.
CRITICAL = 50
FATAL = CRITICAL
ERROR = 40
WARNING = 30
WARN = WARNING
INFO = 20
DEBUG = 10
NOTSET = 0
stream Use the specified stream to initialize the StreamHandler. Note
that this argument is incompatible with ‘filename‘ - if both
are present, ‘stream‘ is ignored.
handlers If specified, this should be an iterable of already created
handlers, which will be added to the root handler. Any handler
in the list which does not have a formatter assigned will be
assigned the formatter created in this function.
"""
logging.debug("debug hahaha")
logging.info("info hahaha")
logging.warning("warning hahaha")
logging.error("error hahaha")
logging.fatal("fatal hahaha")
# 此时屏幕未输出任何东西,但是多了一个logfile.log文件
# 创建方法:
logger = logging.getLogger(logger_name)
创建Logger实例后,可以使用以下方法进行日志级别设置,增加处理器Handler。
"""
通过调用 Logger 类(以下称为 loggers , 记录器)的实例来执行日志记录。 每个实例都有一个名称,它们在概念上以点(句点)作为分隔符排列在命名空间的层次结构中。
例如,名为 ‘scan‘ 的记录器是记录器 ‘scan.text‘ ,‘scan.html‘ 和 ‘scan.pdf‘ 的父级。 记录器名称可以是你想要的任何名称,并指示记录消息源自的应用程序区域。
"""
"""
Logger is also the first to filter the message based on a level — if you set the logger to INFO,
and all handlers to DEBUG,
you still won‘t receive DEBUG messages on handlers — they‘ll be rejected by the logger itself.
If you set logger to DEBUG, but all handlers to INFO,
you won‘t receive any DEBUG messages either — because while the logger says "ok, process this",
the handlers reject it (DEBUG < INFO).
"""
可在logging.basicConfig()函数中通过具体参数来更改logging模块默认行为,可用参数有
filename:用指定的文件名创建FiledHandler(后边会具体讲解handler的概念),这样日志会被存储在指定的文件中。
filemode:文件打开方式,在指定了filename时使用这个参数,默认值为“a”还可指定为“w”。
format:指定handler使用的日志显示格式。
datefmt:指定日期时间格式。
level:设置rootlogger(后边会讲解具体概念)的日志级别
stream:用指定的stream创建StreamHandler。可以指定输出到sys.stderr,sys.stdout或者文件,默认为sys.stderr。若同时列出了filename和stream两个参数,则stream参数会被忽略。
#格式
%(name)s:Logger的名字,并非用户名,详细查看
%(levelno)s:数字形式的日志级别
%(levelname)s:文本形式的日志级别
%(pathname)s:调用日志输出函数的模块的完整路径名,可能没有
%(filename)s:调用日志输出函数的模块的文件名
%(module)s:调用日志输出函数的模块名
%(funcName)s:调用日志输出函数的函数名
%(lineno)d:调用日志输出函数的语句所在的代码行
%(created)f:当前时间,用UNIX标准的表示时间的浮 点数表示
%(relativeCreated)d:输出日志信息时的,自Logger创建以 来的毫秒数
%(asctime)s:字符串形式的当前时间。默认格式是 “2003-07-08 16:49:45,896”。逗号后面的是毫秒
%(thread)d:线程ID。可能没有
%(threadName)s:线程名。可能没有
%(process)d:进程ID。可能没有
%(message)s:用户输出的消息
# 文件名:mylog.conf
[loggers] # 配置了两个logger对象
keys=root,simpleExample
[handlers] # 配置了两个handler对象,一个是控制台输出,另一用文件输出
keys=consoleHandler,fileHandler
[formatters] # 配置了一个格式化器
keys=simpleFormatter
[logger_root] # root这个logger,配的等级是DEBUG
level=DEBUG
handlers=consoleHandler #
[logger_simpleExample] # simple这个loger配置的等级也是DEBUG
level=DEBUG
handlers=fileHandler
qualname=simpleExample
propagate=0 # 通常,我们都需要显示的指定propagate的值为0,防止日志记录向上层logger传递。这里就是防止像上层root_loger传递
[handler_consoleHandler]
class=StreamHandler #
level=DEBUG
formatter=simpleFormatter
args=(sys.stdout,)
[handler_fileHandler]
class=FileHandler # The FileHandler class, located in the core logging package, 、
# sends logging output to a disk file. It inherits the output functionality from StreamHandler.
level=DEBUG
format=simpleFormatter
args=(‘mylog.log‘,)
[formatter_simpleFormatter]
format=%(asctime)s - %(name)s - %(levelname)s - %(message)s
datefmt=
标签:led cname core bottom strong 级别 class read secondary
原文地址:https://www.cnblogs.com/dadaizi/p/13060436.html