aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authoruser <user@node5.net>2024-04-09 19:11:01 +0200
committeruser <user@node5.net>2024-04-09 19:11:01 +0200
commit535d1119deacb8e1444c92b3bcb7bbec318b2e4b (patch)
treec0418194883a3058ade575739c58012cd90cd704 /src
parent3083f77433a12da5b1fc5f59afb2c48562346505 (diff)
proper logging
Diffstat (limited to 'src')
-rw-r--r--src/article.py18
-rw-r--r--src/blog_node5_net.py31
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())