Module facetorch.logger
Expand source code
import logging
import os
from typing import Optional
from pythonjsonlogger import jsonlogger
class LoggerJsonFile:
def __init__(
self,
name: str = "facetorch",
level: int = logging.CRITICAL,
path_file: Optional[str] = None,
json_format: str = "%(asctime)s %(levelname)s %(message)s",
):
"""Logger in json format that writes to a file and console.
Args:
name (str): Name of the logger.
level (str): Level of the logger.
path_file (str): Path to the log file.
json_format (str): Format of the log record.
Attributes:
logger (logging.Logger): Logger object.
"""
self.name = name
self.level = level
self.path_file = path_file
self.json_format = json_format
self.logger = logging.getLogger(self.name)
self.configure()
def configure(self):
"""Configures the logger."""
if self.logger.level == 0 or self.level < self.logger.level:
self.logger.setLevel(self.level)
if len(self.logger.handlers) == 0:
json_handler = logging.StreamHandler()
formatter = jsonlogger.JsonFormatter(fmt=self.json_format)
json_handler.setFormatter(formatter)
self.logger.addHandler(json_handler)
if self.path_file is not None:
os.makedirs(os.path.dirname(self.path_file), exist_ok=True)
path_file_handler = logging.FileHandler(self.path_file, mode="w")
path_file_handler.setLevel(self.level)
self.logger.addHandler(path_file_handler)
self.logger.propagate = False
Classes
class LoggerJsonFile (name: str = 'facetorch', level: int = 50, path_file: Optional[str] = None, json_format: str = '%(asctime)s %(levelname)s %(message)s')
-
Logger in json format that writes to a file and console.
Args
name
:str
- Name of the logger.
level
:str
- Level of the logger.
path_file
:str
- Path to the log file.
json_format
:str
- Format of the log record.
Attributes
logger
:logging.Logger
- Logger object.
Expand source code
class LoggerJsonFile: def __init__( self, name: str = "facetorch", level: int = logging.CRITICAL, path_file: Optional[str] = None, json_format: str = "%(asctime)s %(levelname)s %(message)s", ): """Logger in json format that writes to a file and console. Args: name (str): Name of the logger. level (str): Level of the logger. path_file (str): Path to the log file. json_format (str): Format of the log record. Attributes: logger (logging.Logger): Logger object. """ self.name = name self.level = level self.path_file = path_file self.json_format = json_format self.logger = logging.getLogger(self.name) self.configure() def configure(self): """Configures the logger.""" if self.logger.level == 0 or self.level < self.logger.level: self.logger.setLevel(self.level) if len(self.logger.handlers) == 0: json_handler = logging.StreamHandler() formatter = jsonlogger.JsonFormatter(fmt=self.json_format) json_handler.setFormatter(formatter) self.logger.addHandler(json_handler) if self.path_file is not None: os.makedirs(os.path.dirname(self.path_file), exist_ok=True) path_file_handler = logging.FileHandler(self.path_file, mode="w") path_file_handler.setLevel(self.level) self.logger.addHandler(path_file_handler) self.logger.propagate = False
Methods
def configure(self)
-
Configures the logger.
Expand source code
def configure(self): """Configures the logger.""" if self.logger.level == 0 or self.level < self.logger.level: self.logger.setLevel(self.level) if len(self.logger.handlers) == 0: json_handler = logging.StreamHandler() formatter = jsonlogger.JsonFormatter(fmt=self.json_format) json_handler.setFormatter(formatter) self.logger.addHandler(json_handler) if self.path_file is not None: os.makedirs(os.path.dirname(self.path_file), exist_ok=True) path_file_handler = logging.FileHandler(self.path_file, mode="w") path_file_handler.setLevel(self.level) self.logger.addHandler(path_file_handler) self.logger.propagate = False