# DExTer : Debugging Experience Tester # ~~~~~~ ~ ~~ ~ ~~ # # Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. # See https://llvm.org/LICENSE.txt for license information. # SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception """Utility functions for producing command line warnings.""" from dex.utils import PrettyOutput class Logger(object): def __init__(self, pretty_output: PrettyOutput): self.o = pretty_output self.error_color = self.o.red self.warning_color = self.o.yellow self.note_color = self.o.default self.verbosity = 1 def error(self, msg, enable_prefix=True, flag=None): if self.verbosity < 0: return if enable_prefix: msg = f"error: {msg}" if flag: msg = f"{msg} [{flag}]" self.error_color("{}\n".format(msg), stream=PrettyOutput.stderr) def warning(self, msg, enable_prefix=True, flag=None): if self.verbosity < 1: return if enable_prefix: msg = f"warning: {msg}" if flag: msg = f"{msg} [{flag}]" self.warning_color("{}\n".format(msg), stream=PrettyOutput.stderr) def note(self, msg, enable_prefix=True, flag=None): if self.verbosity < 2: return if enable_prefix: msg = f"note: {msg}" if flag: msg = f"{msg} [{flag}]" self.note_color("{}\n".format(msg), stream=PrettyOutput.stderr)