сделал номера задач кликабельными в консоли
This commit is contained in:
@@ -1,3 +1,6 @@
|
||||
REDMINE_ISSUE_URL_TEMPLATE = "https://redmine.sbps.ru/issues/{issue_id}"
|
||||
|
||||
|
||||
class RedmineConfig:
|
||||
def __init__(self):
|
||||
self.base_url = "https://redmine.sbps.ru"
|
||||
|
||||
21
main.py
21
main.py
@@ -1,6 +1,25 @@
|
||||
import logging
|
||||
import re
|
||||
import sys
|
||||
|
||||
from config.redmine import REDMINE_ISSUE_URL_TEMPLATE
|
||||
|
||||
|
||||
class ConsoleFormatter(logging.Formatter):
|
||||
"""Форматирует консольные логи и делает номера задач Redmine кликабельными."""
|
||||
|
||||
ISSUE_PATTERN = re.compile(r"(?<![\w/])#(?P<issue_id>\d+)")
|
||||
|
||||
def format(self, record):
|
||||
message = super().format(record)
|
||||
return self.ISSUE_PATTERN.sub(self._format_issue_link, message)
|
||||
|
||||
def _format_issue_link(self, match):
|
||||
issue_id = match.group("issue_id")
|
||||
issue_text = match.group(0)
|
||||
issue_url = REDMINE_ISSUE_URL_TEMPLATE.format(issue_id=issue_id)
|
||||
return f"\033]8;;{issue_url}\033\\{issue_text}\033]8;;\033\\"
|
||||
|
||||
|
||||
def configure_logging(level: int = logging.INFO):
|
||||
"""Настраивает короткий консольный лог и подробный файловый лог."""
|
||||
@@ -11,7 +30,7 @@ def configure_logging(level: int = logging.INFO):
|
||||
file_handler.setLevel(level)
|
||||
|
||||
console_handler = logging.StreamHandler(sys.stdout)
|
||||
console_handler.setFormatter(logging.Formatter('%(message)s'))
|
||||
console_handler.setFormatter(ConsoleFormatter('%(message)s'))
|
||||
console_handler.setLevel(level)
|
||||
|
||||
logging.basicConfig(
|
||||
|
||||
Reference in New Issue
Block a user