• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

MenSeb / python-playground / 6844012198

13 Nov 2023 12:15AM UTC coverage: 4.63% (-2.9%) from 7.576%
6844012198

Pull #7

github

web-flow
Merge 6de0d3285 into aa509f6b9
Pull Request #7: build(logger): implement logger utilities

0 of 10 branches covered (0.0%)

Branch coverage included in aggregate %.

0 of 36 new or added lines in 1 file covered. (0.0%)

5 of 98 relevant lines covered (5.1%)

0.05 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

0.0
/src/utilities/logger.py
1
"""Module Logger."""
2

3

NEW
4
from __future__ import annotations
×
5

NEW
6
import logging
×
NEW
7
import sys
×
8

9

NEW
10
class Logger:
×
11
    """Interface representing logger utilities."""
12

NEW
13
    def __init__(
×
14
        self: Logger,
15
        *,
16
        debugging: bool = False,
17
        tracing: bool = False,
18
        newline: bool = True,
19
    ) -> None:
20
        """Initiate a logger.
21

22
        Parameters
23
        ----------
24
        debugging : bool, optional
25
            Set logging level to DEBUG otherwise INFO, by default False
26
        tracing : bool, optional
27
            Trace method calls when using _trace, by default False
28
        newline : bool, optional
29
            Add a new line between logs, by default True
30
        """
NEW
31
        formatter = "%(name)s:%(levelname)s => %(msg)s" + "\n" if newline else ""
×
32

NEW
33
        handler = logging.StreamHandler()
×
NEW
34
        handler.setFormatter(fmt=logging.Formatter(fmt=formatter))
×
35

NEW
36
        logger = logging.getLogger(name="LOG")
×
NEW
37
        logger.addHandler(hdlr=handler)
×
NEW
38
        logger.setLevel(level=logging.DEBUG if debugging else logging.INFO)
×
39

NEW
40
        self.logger = logger
×
NEW
41
        self.debugging = debugging
×
NEW
42
        self.tracing = tracing
×
NEW
43
        self.newline = newline
×
44

NEW
45
    def debug_(self: Logger, msg: str) -> None:
×
46
        """Log a message with severity DEBUG.
47

48
        Parameters
49
        ----------
50
        msg : str
51
            The message to display.
52
        """
NEW
53
        self.logger.debug(msg=msg)
×
54

NEW
55
    def warn_(self: Logger, msg: str) -> None:
×
56
        """Log a message with severity WARN.
57

58
        Parameters
59
        ----------
60
        msg : str
61
            The message to display.
62
        """
NEW
63
        self.logger.warning(msg=msg)
×
64

NEW
65
    def info_(self: Logger, msg: str) -> None:
×
66
        """Log a message with severity INFO.
67

68
        Parameters
69
        ----------
70
        msg : str
71
            The message to display.
72
        """
NEW
73
        self.logger.info(msg=msg)
×
74

NEW
75
    def error_(self: Logger, msg: str) -> None:
×
76
        """Log a message with severity ERROR.
77

78
        Parameters
79
        ----------
80
        msg : str
81
            The message to display.
82
        """
NEW
83
        self.logger.error(msg=msg)
×
84

NEW
85
    def critical_(self: Logger, msg: str) -> None:
×
86
        """Log a message with severity CRITICAL.
87

88
        Parameters
89
        ----------
90
        msg : str
91
            The message to display.
92
        """
NEW
93
        self.logger.critical(msg=msg)
×
94

NEW
95
    def trace_(self: Logger, msg: str | None = None) -> None:
×
96
        """Log a message with severity 'DEBUG' to trace methods call.
97

98
        Parameters
99
        ----------
100
        msg : str | None, optional
101
            The message to display, by default None.
102
        """
NEW
103
        if not self.tracing:
×
NEW
104
            return
×
105

NEW
106
        frame = sys._getframe(1)  # noqa: SLF001
×
107

NEW
108
        message = "TRACE"
×
109

110
        # Trace class name if method is from a class
NEW
111
        if "self" in frame.f_locals:
×
NEW
112
            message += f" - CLASS {frame.f_locals['self'].__class__.__name__}"
×
113

114
        # Trace method name
NEW
115
        message += f" - METHOD {frame.f_code.co_name}"
×
116

NEW
117
        if msg is not None:
×
NEW
118
            message += f" - {msg}"
×
119

NEW
120
        self.info_(msg=f"{message}")
×
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc