log级别:debug(), info(), warning(), error() and critical() 5个级别,最低为debug,最高位critical
log标准输出格式:
%(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 |
用户输出的消息 |
1.屏幕输出
1 #!/usr/bin/python 2 import logging 3 #屏幕输出 4 logging.debug('调试测试异常') 5 logging.info('正常') 6 logging.warning('警告') 7 logging.error('错误') 8 logging.critical('严重')View Code
2.屏幕格式化输出
需要先设置格式; logging.basicConfig(filename='log_test.log',encoding='utf-8',format='%(asctime)s-%(lineno)s-%(levelname)s-%(message)s',level=logging.INFO)
1 #!/usr/bin/python 2 import logging 3 # print(dir(logging)) 4 #debug(), info(), warning(), error() and critical() 5个级别 5 #屏幕输出 6 logging.basicConfig(format='%(asctime)s-%(lineno)s-%(levelname)s-%(message)s',level=logging.INFO) 7 logging.debug('调试测试异常') 8 logging.info('正常') 9 logging.warning('警告') 10 logging.error('错误') 11 logging.critical('严重')View Code
3.打印到文件
1 #!/usr/bin/python 2 import logging 3 # #把日志写到文件里面 4 logging.basicConfig(filename='log_test.log',encoding='utf-8',format='%(asctime)s-%(lineno)s-%(levelname)s-%(message)s',level=logging.INFO) 5 logging.debug('调试测试异常') 6 logging.info('正常') 7 logging.warning('警告') 8 logging.error('错误') 9 logging.critical('严重')View Code
4.同时打印到屏幕和文件
需要加入logger和handler
常用handler:
1) logging.StreamHandler
使用这个Handler可以向类似与sys.stdout或者sys.stderr的任何文件对象(file object)输出信息。
2) logging.FileHandler
用于向一个文件输出日志信息
3) logging.handlers.RotatingFileHandler
但是它可以管理文件大小。当文件达到一定大小之后,它会自动将当前日志文件改名,然后创建 一个新的同名日志文件继续输出。
4) logging.handlers.TimedRotatingFileHandler
通过间隔时间 自动创建新的日志文件。
1 #!/usr/bin/python 2 import logging 3 #创建logger 4 logger=logging.getLogger('TEST-LOG') 5 logger.setLevel(logging.INFO) 6 #创建handler 7 # #打印到屏幕 8 cs=logging.StreamHandler() 9 cs.setLevel(logging.INFO) 10 #打印到文件 11 cf=logging.FileHandler(filename='log_test.log',encoding='utf-8') 12 cf.setLevel(logging.INFO) 13 #设置标准格式 14 fomat_test=logging.Formatter('%(asctime)s-%(levelname)s-%(message)s') 15 cs.setFormatter(fomat_test) 16 cf.setFormatter(fomat_test) 17 logger.addHandler(cs) 18 logger.addHandler(cf) 19 20 logger.debug('ts') 21 logger.info('ts') 22 logger.warning('警告') 23 logger.error('错误') 24 logger.critical('严重')View Code 标签:-%,输出,常用,logging,log,python,logger,日志 From: https://www.cnblogs.com/Little-Girl/p/17997532