Passed
Push — main ( fedced...62aa48 )
by Jochen
01:57
created

syslog2irc.util   A

Complexity

Total Complexity 2

Size/Duplication

Total Lines 38
Duplicated Lines 0 %

Test Coverage

Coverage 46.15%

Importance

Changes 0
Metric Value
eloc 14
dl 0
loc 38
rs 10
c 0
b 0
f 0
ccs 6
cts 13
cp 0.4615
wmc 2

2 Functions

Rating   Name   Duplication   Size   Complexity  
A configure_logging() 0 15 1
A start_thread() 0 4 1
1
"""
2
syslog2irc.util
3
~~~~~~~~~~~~~~~
4
5
Various utilities
6
7
:Copyright: 2007-2021 Jochen Kupperschmidt
8
:License: MIT, see LICENSE for details.
9
"""
10
11 1
import logging
12 1
from logging import Formatter, StreamHandler
13 1
from threading import Thread
14 1
from typing import Callable
15
16
17 1
def configure_logging() -> None:
18
    """Configure application-specific loggers.
19
20
    Setting the log level does not affect dependencies' loggers.
21
    """
22
    # Get the parent logger of all application-specific
23
    # loggers defined in the package's modules.
24
    pkg_logger = logging.getLogger(__package__)
25
26
    # Configure handler that writes to STDERR.
27
    handler = StreamHandler()
28
    handler.setFormatter(Formatter('%(asctime)s %(levelname)-8s %(message)s'))
29
    pkg_logger.addHandler(handler)
30
31
    pkg_logger.setLevel(logging.DEBUG)
32
33
34 1
def start_thread(target: Callable, name: str) -> None:
35
    """Create, configure, and start a new thread."""
36
    t = Thread(target=target, name=name, daemon=True)
37
    t.start()
38