2021/1/12 logging模块(python)
logging模块(日志模块)
@@普通版@@
import logging logging.basicConfig( level=logging.DEBUG ) logging.basicConfig( level=logging.DEBUG, format='%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s', filename='test.log', filemode='w' ) logging.debug('调试模式') # 10 logging.info('正常模式') # 20 logging.warning('警告信息') # 30 logging.error('错误信息') # 40 logging.critical('严重错误信息') # 50
@@标准版@@
import logging logger = logging.getLogger() #创建一个文件对象 fh = logging.FileHandler('标配版.log', encoding='utf-8') #创建一个屏幕对象 sh = logging.StreamHandler() #绑定log格式 formatter = logging.Formatter('%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s') formatter1 = logging.Formatter('%(asctime)s %(filename)s') #创建一个文件的格式 fh.setFormatter(formatter) #创建一个屏幕格式 sh.setFormatter(formatter1) #绑定对象 logger.addHandler(fh) logger.addHandler(sh) #设置总开关 logger.setLevel(10) #设置文件开关 fh.setLevel(10) sh.setLevel(30) logging.debug('调试模式') # 10 logging.info('正常模式') # 20 logging.warning('警告信息') # 30 logging.error('错误信息') # 40 logging.critical('严重错误信息') # 50
@@适用版@@
import logging.config standard_format = '[%(asctime)s][%(threadName)s:%(thread)d][task_id:%(name)s][%(filename)s:%(lineno)d'\ '[%(levelname)s][%(message)s]' simple_format = '[%(levelname)s][%(asctime)s][%(filename)s:%(lineno)d]%(message)s' id_simple_format = '[%(levelname)s][%(asctime)s] %(message)s' #定义日志输出路径与文件名 logfile_name = 'log1.log' logfile_path = r'C:\Users\ping\PycharmProjects\untitled\d19\log1.log' #log字典 #log字典所有的键不能改变 LOGGING_DIC = { 'version': 1, #版本号 'disable_existing_loggers': False, 'formatters': { 'standard': { 'format': standard_format }, 'simple': { 'format': simple_format } },#格式(标准格式,简单格式) 'filtes': {},#过滤 'handlers': { #打印到终端的日志 'sh': { 'level': 'DEBUG', 'class': 'logging.StreamHandler', 'formatter': 'simple' }, #打印到文件的日志,收集info及以上日志 'fh': { 'level': 'DEBUG', 'class': 'logging.handlers.RotatingFileHandler', #配置轮转文件,保存文件 'formatter': 'standard', 'filename': logfile_path, #日志文件 'maxBytes': 300, #1024*1024*5, #日志文件大小限制 5MB 'backupCount': 5, 'encoding': 'utf-8' #日志文件的编码 }, },#文件句柄 'loggers': { '': { 'handlers': ['sh', 'fh'], # 这里把上面定义的两个handler都加上,即log数据既写入文件又打印到屏幕 'level': 'DEBUG', 'propagate': True, #向上(更高level的logger)传递 }, }, } #导入上面定义的logging配置 logging.config.dictConfig(LOGGING_DIC) #生成一个log实例 logger = logging.getLogger("购物车日志") #记录该文件的运行状态 logger.debug('It works')
@@使用@@
import logging.config standard_format = '[%(asctime)s][%(threadName)s:%(thread)d][task_id:%(name)s][%(filename)s:%(lineno)d'\ '[%(levelname)s][%(message)s]' simple_format = '[%(levelname)s][%(asctime)s][%(filename)s:%(lineno)d]%(message)s' id_simple_format = '[%(levelname)s][%(asctime)s] %(message)s' #定义日志输出路径与文件名 logfile_name = 'log1.log' logfile_path = r'C:\Users\ping\PycharmProjects\untitled\d19\log1.log' #log字典 #log字典所有的键不能改变 LOGGING_DIC = { 'version': 1, #版本号 'disable_existing_loggers': False, 'formatters': { 'standard': { 'format': standard_format }, 'simple': { 'format': simple_format }, 'id_simple': { 'format': id_simple_format } },#格式(标准格式,简单格式) 'filtes': {},#过滤 'handlers': { #打印到终端的日志 'sh': { 'level': 'DEBUG', 'class': 'logging.StreamHandler', 'formatter': 'simple' }, #打印到文件的日志,收集info及以上日志 'fh': { 'level': 'DEBUG', 'class': 'logging.handlers.RotatingFileHandler', #配置轮转文件,保存文件 'formatter': 'standard', 'filename': logfile_path, #日志文件 'maxBytes': 300, #1024*1024*5, #日志文件大小限制 5MB 'backupCount': 5, 'encoding': 'utf-8' #日志文件的编码 }, },#文件句柄 'loggers': { '': { 'handlers': ['sh', 'fh'], # 这里把上面定义的两个handler都加上,即log数据既写入文件又打印到屏幕 'level': 'DEBUG', 'propagate': True, #向上(更高level的logger)传递 }, }, } # #导入上面定义的logging配置 # logging.config.dictConfig(LOGGING_DIC) # #生成一个log实例 # logger = logging.getLogger("购物车日志") # #记录该文件的运行状态 # logger.debug('It works') def logger(): logging.config.dictConfig(LOGGING_DIC) logger = logging.getLogger() return logger def login(): logger().info('登陆成功') login()

浙公网安备 33010602011771号