日志管理 logging

张开发
2026/5/4 17:24:05 15 分钟阅读
日志管理 logging
日志级别默认是waringDEBUG 详细信息INFO 正常运行产生的一些信息WARNING 警告用户虽然正常但可能会发生错误ERROR 严重错误CRITICAL 严重错误简单应用基础配置#filename日志输出的文件filemodew每次运行后会清除上次的日志内容levellogging.DEBUG表示只要在这个等级包括上的都会被输出 logging.basicConfig(filenamedemo.log,filemodew,levellogging.DEBUG) logging.debug(debug message) logging.info(info message) logging.warning(warning message) logging.error(error message) logging.critical(critical message)输出变量logging.basicConfig(levellogging.DEBUG) logging.debug(姓名 %s,年龄 %d,张三,19) logging.debug(姓名 %s,年龄 %d%(张三,19))设置输出格式高级应用loggers记录器提供应用程序代码直接使用的接口Handlers处理器将日志输出到指定的位置Filters过滤器更好选择输出的日志Formatters格式化器#记录器 logger logging.getLogger(app_log) logger.setLevel(logging.DEBUG) #处理器 #输出控制台 consoleHandle logging.StreamHandler() consoleHandle.setLevel(logging.DEBUG) #输出文件 fileHandle logging.FileHandler(filenameaddDemo.log) fileHandle.setLevel(logging.INFO) #formatter格式 formatter logging.Formatter(%(asctime)s - %(name)s - %(levelname)s - %(message)s) #设置处理的的输出格式 consoleHandle.setFormatter(formatter) fileHandle.setFormatter(formatter) #记录器要设置处理器 logger.addHandler(consoleHandle) logger.addHandler(fileHandle) #过滤器 flt logging.Filter(cc) #不会输出日志被过滤掉 # logger.addFilter(flt) #指定过滤对应的处理器 fileHandle.addFilter(flt) logger.debug(debug message) logger.info(info message) logger.warning(warning message) logger.error(error message) logger.critical(critical message)使用配置文件配置文件[loggers] keysroot,app_log [handlers] keysfileHandler,consoleHandle [formatters] keyssimpleFormatter [logger_root] levelDEBUG handlersconsoleHandle [logger_app_log] levelDEBUG handlersfileHandler,consoleHandle qualnameapp_log propagate0 [handler_consoleHandle] classStreamHandler args(sys.stdout,) levelDEBUG [handler_fileHandler] classhandlers.TimedRotatingFileHandler args(app_log.log,midnight,1,0) levelDEBUG formattersimpleFormatter [formatter_simpleFormatter] format%(asctime)s|%(levelname)8s|%(filename)s[:%(lineno)d]|%(message)s datefmt%Y-%m-%d %H:%M:%S#配置文件方式处理日志 logging.config.fileConfig(logging.conf) #记录器 rootLogger logging.getLogger() logger logging.getLogger(app_log.log) asss try: int(a) except Exception as e: logger.exception(e) logger.debug(debug message) logger.info(info message) logger.warning(warning message) logger.error(error message) logger.critical(critical message)

更多文章