scripts/util/logger.py (35 lines of code) (raw):

#!/usr/bin/env python3 # Copyright 2004-present Facebook. All Rights Reserved. # This source code is licensed under the BSD-style license found in the # LICENSE file in the root directory of this source tree. import logging class Logger: def __init__(self, name=None): self.logger = logging.getLogger(name) self.logger.setLevel(logging.DEBUG) handler = logging.StreamHandler() handler.setLevel(logging.DEBUG) format = logging.Formatter("%(asctime)s - %(name)s/%(levelname)s: %(message)s") handler.setFormatter(format) self.logger.addHandler(handler) def check(self, condition, message=""): if not condition: self.logger.error("Failed condition: %s", message) def check_lt(self, objL, objR, message=""): self.check(objL < objR, "{} < {}. {}".format(objL, objR, message)) def check_le(self, objL, objR, message=""): self.check(objL <= objR, "{} <= {}. {}".format(objL, objR, message)) def check_gt(self, objL, objR, message=""): self.check(objL > objR, "{} > {}. {}".format(objL, objR, message)) def check_ge(self, objL, objR, message=""): self.check(objL >= objR, "{} >= {}. {}".format(objL, objR, message)) def check_eq(self, objL, objR, message=""): self.check(objL == objR, "{} == {}. {}".format(objL, objR, message)) def check_ne(self, objL, objR, message=""): self.check(objL != objR, "{} != {}. {}".format(objL, objR, message)) def debug(self, message): self.logger.debug(message) def info(self, message): self.logger.info(message) def warn(self, message): self.logger.warning(message) def error(self, message): self.logger.error(message) def fatal(self, message): self.logger.critical(message)