diff options
| author | user <user@node5.net> | 2024-04-09 19:11:01 +0200 |
|---|---|---|
| committer | user <user@node5.net> | 2024-04-09 19:11:01 +0200 |
| commit | 535d1119deacb8e1444c92b3bcb7bbec318b2e4b (patch) | |
| tree | c0418194883a3058ade575739c58012cd90cd704 /src | |
| parent | 3083f77433a12da5b1fc5f59afb2c48562346505 (diff) | |
proper logging
Diffstat (limited to 'src')
| -rw-r--r-- | src/article.py | 18 | ||||
| -rw-r--r-- | src/blog_node5_net.py | 31 |
2 files changed, 39 insertions, 10 deletions
diff --git a/src/article.py b/src/article.py index 20e1c21..38e8cd7 100644 --- a/src/article.py +++ b/src/article.py @@ -8,6 +8,8 @@ import typing import markdown import yaml +logger = logging.getLogger(__name__) + # Known exceptions, these are raised when generating on program exiting error, and are displayed to the user nicely class ArticleHandlerException(Exception): @@ -106,7 +108,7 @@ class ArticleGenerator: raise ArticleNoMetaData(f'No metadata found') def get_article(self, path: str) -> Article: - logging.debug(path) + logger.info(path) article_args = {} filename, file_extension = os.path.splitext(path) @@ -122,10 +124,10 @@ class ArticleGenerator: thumbnail_paths = glob.glob(f'{article_args["folder_path"]}/Thumbnail*') if len(thumbnail_paths) > 1: - logging.warning(f"More than one thumbnail found, using: {thumbnail_paths[0]}") + logger.warning(f"More than one thumbnail found, using: {thumbnail_paths[0]}") if len(thumbnail_paths) == 0: - logging.warning("No thumbnail image") + logger.warning("No thumbnail image") else: article_args['thumbnail_path'] = '/'.join(pathlib.Path(thumbnail_paths[0]).parts[2:]) else: @@ -157,17 +159,17 @@ class ArticleGenerator: def discover_folder_structure(self, article: Article, articles: Folder): previous_folder = articles for folder_name in article.web_dir: - logging.debug(folder_name) + logger.debug(folder_name) if folder_name not in previous_folder.sub_folders: - logging.debug('new') + logger.debug('new') current_folder = Folder(url=f'{previous_folder.url}{folder_name}/', name=folder_name) previous_folder.sub_folders[folder_name] = current_folder else: - logging.debug('reuse') + logger.debug('reuse') current_folder = previous_folder.sub_folders[folder_name] previous_folder = current_folder - logging.debug('') + logger.debug('') previous_folder.articles.append(article) @@ -184,7 +186,7 @@ class ArticleGenerator: articles = Folder(url='/', name='index') for article_path in articles_paths: article = self.get_article(article_path) - logging.debug(article.pretty_print) + logger.debug(article.pretty_print) self.discover_folder_structure(articles=articles, article=article) self.sort_articles(articles) return articles diff --git a/src/blog_node5_net.py b/src/blog_node5_net.py index 1b1ebce..a56ff19 100644 --- a/src/blog_node5_net.py +++ b/src/blog_node5_net.py @@ -13,9 +13,36 @@ import article import db_handler import telegram_handler -logging.basicConfig(format='%(asctime)s,%(msecs)03d %(levelname)-8s [%(filename)s:%(lineno)d] %(message)s', - datefmt='%Y-%m-%d:%H:%M:%S', level=logging.DEBUG) + +class CustomFormatter(logging.Formatter): + grey = "\x1b[90;20m" + blue = "\x1b[34;20m" + yellow = "\x1b[33;20m" + red = "\x1b[31;20m" + bold_red = "\x1b[31;1m" + reset = "\x1b[0m" + format = "%(asctime)s,%(msecs)03d %(levelname)-8s [%(filename)s:%(lineno)d] %(message)s" + + FORMATS = { + logging.DEBUG: grey + format + reset, + logging.INFO: blue + format + reset, + logging.WARNING: yellow + format + reset, + logging.ERROR: red + format + reset, + logging.CRITICAL: bold_red + format + reset + } + + def format(self, record): + log_fmt = self.FORMATS.get(record.levelno) + formatter = logging.Formatter(log_fmt) + return formatter.format(record) + + logger = logging.getLogger(__name__) +logger.root.setLevel(logging.INFO) + +stream_handler = logging.StreamHandler() +stream_handler.setFormatter(CustomFormatter()) +logger.root.addHandler(stream_handler) with open(os.path.join('configs', 'config.yml'), 'r') as file: config = yaml.safe_load(file.read()) |
