Skip to content

Commit

Permalink
feat: add logger_init util
Browse files Browse the repository at this point in the history
  • Loading branch information
Ljzd-PRO committed Nov 7, 2023
1 parent e1ab4a6 commit 08da514
Show file tree
Hide file tree
Showing 4 changed files with 30 additions and 2 deletions.
2 changes: 2 additions & 0 deletions ktoolbox/__main__.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
import fire

from ktoolbox.cli import KToolBoxCli
from ktoolbox.utils import logger_init

if __name__ == "__main__":
logger_init()
fire.Fire(KToolBoxCli)
3 changes: 3 additions & 0 deletions ktoolbox/configuration.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import datetime
import logging
from logging import getLevelName
from pathlib import Path
Expand Down Expand Up @@ -94,6 +95,8 @@ class LoggerConfiguration(BaseModel):
"""Path to save logs"""
level: Union[str, int] = getLevelName(logging.DEBUG)
"""Log filter level"""
rotation: Union[str, int, datetime.time, datetime.timedelta] = "1 week"
"""Log rotation"""


class Configuration(BaseSettings):
Expand Down
1 change: 1 addition & 0 deletions ktoolbox/enum.py
Original file line number Diff line number Diff line change
Expand Up @@ -31,3 +31,4 @@ class DataStorageNameEnum(StrEnum):
PostData = "post.json"
CreatorIndicesData = "creator-indices.ktoolbox"
JobListData = "job-list.ktoolbox"
LogData = "ktoolbox.log"
26 changes: 24 additions & 2 deletions ktoolbox/utils.py
Original file line number Diff line number Diff line change
@@ -1,13 +1,15 @@
import cgi
import os.path
import urllib.parse
from typing import Generic, TypeVar, Optional, Dict

from loguru import logger
from pydantic import BaseModel, ConfigDict

from ktoolbox.configuration import config
from ktoolbox.enum import RetCodeEnum
from ktoolbox.enum import RetCodeEnum, DataStorageNameEnum

__all__ = ["BaseRet", "file_name_from_headers", "generate_message"]
__all__ = ["BaseRet", "file_name_from_headers", "generate_message", "logger_init"]
_T = TypeVar('_T')


Expand Down Expand Up @@ -96,3 +98,23 @@ def generate_message(title: str = None, **kwargs):
"""
title: str = title or ""
return f"{title} - {kwargs}" if kwargs else title


def logger_init(disable_stdout: bool = False):
"""
Initialize `loguru` logger
:param disable_stdout: Disable default output stream
"""
if disable_stdout:
logger.remove()
path = config.logger.path
if not os.path.isdir(path):
os.makedirs(path)
if path is not None:
logger.add(
path / DataStorageNameEnum.LogData,
level=config.logger.level,
rotation=config.logger.rotation,
diagnose=True
)

0 comments on commit 08da514

Please sign in to comment.