Skip to content

Commit

Permalink
Merge pull request #11 from ami-iit/feature/logging
Browse files Browse the repository at this point in the history
Add custom logging support
  • Loading branch information
diegoferigo authored Oct 19, 2022
2 parents 8a1f2b2 + b81fc17 commit 87bab1c
Show file tree
Hide file tree
Showing 3 changed files with 84 additions and 0 deletions.
1 change: 1 addition & 0 deletions setup.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,7 @@ package_dir =
=src
python_requires = >=3.8
install_requires =
coloredlogs
mashumaro
numpy
packaging
Expand Down
1 change: 1 addition & 0 deletions src/rod/__init__.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
from . import logging
from .collision import Collision
from .common import Pose, Xyz
from .geometry import (
Expand Down
82 changes: 82 additions & 0 deletions src/rod/logging.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
import enum
import logging
from typing import Union

import coloredlogs

LOGGER_NAME = "rod"


class LoggingLevel(enum.IntEnum):

NOTSET = logging.NOTSET
DEBUG = logging.DEBUG
INFO = logging.INFO
WARNING = logging.WARNING
ERROR = logging.ERROR
CRITICAL = logging.CRITICAL


def _logger() -> logging.Logger:

return logging.getLogger(name=LOGGER_NAME)


def set_logging_level(level: Union[int, LoggingLevel] = LoggingLevel.WARNING):

if isinstance(level, int):
level = LoggingLevel(level)

_logger().setLevel(level=level.value)


def get_logging_level() -> LoggingLevel:

level = _logger().getEffectiveLevel()
return LoggingLevel(level)


def configure(level: LoggingLevel = LoggingLevel.WARNING) -> None:

info(f"Configuring the '{LOGGER_NAME}' logger")

handler = logging.StreamHandler()
fmt = "%(name)s[%(process)d] %(levelname)s %(message)s"
handler.setFormatter(fmt=coloredlogs.ColoredFormatter(fmt=fmt))
_logger().addHandler(hdlr=handler)

# Workaround for double logging caused by abseil handlers
# https://github.com/abseil/abseil-py/issues/99
_logger().propagate = False

set_logging_level(level=level)


def debug(msg: str = "") -> None:

_logger().debug(msg=msg)


def info(msg: str = "") -> None:

_logger().info(msg=msg)


def warning(msg: str = "") -> None:

_logger().warning(msg=msg)


def error(msg: str = "") -> None:

_logger().error(msg=msg)


def critical(msg: str = "") -> None:

_logger().critical(msg=msg)


def exception(msg: str = "") -> None:

_logger().exception(msg=msg)

0 comments on commit 87bab1c

Please sign in to comment.