logWrite replaced with logging module

This commit is contained in:
Profitroll 2023-06-23 11:25:27 +02:00
parent 23467a88ef
commit 4b43e76822
Signed by: profitroll
GPG Key ID: FA35CAB49DACD3B2
5 changed files with 50 additions and 27 deletions

View File

@ -1,3 +1,4 @@
import logging
import re
from datetime import datetime, timedelta, timezone
from os import makedirs, path, remove, system
@ -43,14 +44,18 @@ from modules.security import (
get_current_active_user,
get_user,
)
from modules.utils import configGet, logWrite
from modules.utils import configGet
logger = logging.getLogger(__name__)
async def compress_image(image_path: str):
image_type = Magic(mime=True).from_file(image_path)
if image_type not in ["image/jpeg", "image/png"]:
logWrite(f"Not compressing {image_path} because its mime is '{image_type}'")
logger.info(
"Not compressing %s because its mime is '%s'", image_path, image_type
)
return
size_before = path.getsize(image_path) / 1024
@ -66,12 +71,15 @@ async def compress_image(image_path: str):
return
task.start()
logWrite(f"Compressing '{Path(image_path).name}'...")
logger.info("Compressing '%s'...", Path(image_path).name)
task.join()
size_after = path.getsize(image_path) / 1024
logWrite(
f"Compressed '{Path(image_path).name}' from {size_before} Kb to {size_after} Kb"
logger.info(
"Compressed '%s' from %s Kb to %s Kb",
Path(image_path).name,
size_before,
size_after,
)

View File

@ -1,3 +1,4 @@
import logging
from datetime import datetime, timedelta
from uuid import uuid1
@ -21,7 +22,9 @@ from modules.security import (
get_user,
verify_password,
)
from modules.utils import configGet, logWrite
from modules.utils import configGet
logger = logging.getLogger(__name__)
async def send_confirmation(user: str, email: str):
@ -41,9 +44,11 @@ async def send_confirmation(user: str, email: str):
col_emails.insert_one(
{"user": user, "email": email, "used": False, "code": confirmation_code}
)
logWrite(f"Sent confirmation email to '{email}' with code {confirmation_code}")
logger.info(
"Sent confirmation email to '%s' with code %s", email, confirmation_code
)
except Exception as exp:
logWrite(f"Could not send confirmation email to '{email}' due to: {exp}")
logger.error("Could not send confirmation email to '%s' due to: %s", email, exp)
@app.get("/users/me/", response_model=User)

View File

@ -1,8 +1,11 @@
import logging
from smtplib import SMTP, SMTP_SSL
from ssl import create_default_context
from traceback import print_exc
from modules.utils import configGet, logWrite
from modules.utils import configGet
logger = logging.getLogger(__name__)
try:
if configGet("use_ssl", "mailer", "smtp") is True:
@ -10,7 +13,7 @@ try:
configGet("host", "mailer", "smtp"),
configGet("port", "mailer", "smtp"),
)
logWrite(f"Initialized SMTP SSL connection")
logger.info("Initialized SMTP SSL connection")
elif configGet("use_tls", "mailer", "smtp") is True:
mail_sender = SMTP(
configGet("host", "mailer", "smtp"),
@ -18,21 +21,21 @@ try:
)
mail_sender.starttls(context=create_default_context())
mail_sender.ehlo()
logWrite(f"Initialized SMTP TLS connection")
logger.info("Initialized SMTP TLS connection")
else:
mail_sender = SMTP(
configGet("host", "mailer", "smtp"), configGet("port", "mailer", "smtp")
)
mail_sender.ehlo()
logWrite(f"Initialized SMTP connection")
logger.info("Initialized SMTP connection")
except Exception as exp:
logWrite(f"Could not initialize SMTP connection to: {exp}")
logger.error("Could not initialize SMTP connection to: %s", exp)
print_exc()
try:
mail_sender.login(
configGet("login", "mailer", "smtp"), configGet("password", "mailer", "smtp")
)
logWrite(f"Successfully initialized mailer")
logger.info("Successfully initialized mailer")
except Exception as exp:
logWrite(f"Could not login into provided SMTP account due to: {exp}")
logger.error("Could not login into provided SMTP account due to: %s", exp)

View File

@ -1,15 +1,11 @@
import logging
from pathlib import Path
from traceback import print_exc
from traceback import format_exc
from typing import Any, Union
from ujson import JSONDecodeError, dumps, loads
# Print to stdout and then to log
def logWrite(message: str, debug: bool = False) -> None:
# save to log file and rotation is to be done
# logAppend(f'{message}', debug=debug)
print(f"{message}", flush=True)
logger = logging.getLogger(__name__)
def jsonLoad(filepath: Union[str, Path]) -> Any:
@ -25,13 +21,17 @@ def jsonLoad(filepath: Union[str, Path]) -> Any:
try:
output = loads(file.read())
except JSONDecodeError:
logWrite(
f"Could not load json file {filepath}: file seems to be incorrect!\n{print_exc()}"
logger.error(
"Could not load json file %s: file seems to be incorrect!\n%s",
filepath,
format_exc(),
)
raise
except FileNotFoundError:
logWrite(
f"Could not load json file {filepath}: file does not seem to exist!\n{print_exc()}"
logger.error(
"Could not load json file %s: file does not seem to exist!\n%s",
filepath,
format_exc(),
)
raise
file.close()
@ -50,7 +50,7 @@ def jsonSave(contents: Union[list, dict], filepath: Union[str, Path]) -> None:
file.write(dumps(contents, ensure_ascii=False, indent=4))
file.close()
except Exception as exp:
logWrite(f"Could not save json file {filepath}: {exp}\n{print_exc()}")
logger.error("Could not save json file %s: %s\n%s", filepath, exp, format_exc())
return

View File

@ -1,3 +1,4 @@
import logging
from os import makedirs
from pathlib import Path
@ -9,6 +10,12 @@ from modules.scheduler import scheduler
makedirs(Path("data/users"), exist_ok=True)
logging.basicConfig(
level=logging.INFO,
format="%(name)s.%(funcName)s | %(levelname)s | %(message)s",
datefmt="[%X]",
)
@app.get("/favicon.ico", response_class=FileResponse, include_in_schema=False)
async def favicon():