Skip to content

Escape code characters in CI pipelines #67

@chirag-jn

Description

@chirag-jn

def log(self, level, message):
reset = "\033[0m"
color = self.LEVEL_COLORS.get(level, "")
level_str = self.LEVEL_STRING.get(level, ' ')
colored_message = f"{color}{message}{reset}"
timestamp = datetime.datetime.now().strftime("%H:%M:%S")
self.logger.log(level, f"[{timestamp}] {level_str} : {colored_message if self.color_enabled else message}")

In this block of code, the log message is wrapped around color specific escape codes. Non interactive terminals don't understand these escape codes and hence they are printed in plaintext.
We can check for existence of an interactive terminal and proceed with our logging accordingly

 def log(self, level, message): 
     ....
     colored_message = f"{message}" if sys.stdout.isatty() else f"{color}{message}{reset}"
     ....

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions