f_logging   A
last analyzed

Complexity

Total Complexity 11

Size/Duplication

Total Lines 38
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
wmc 11
eloc 27
dl 0
loc 38
rs 10
c 0
b 0
f 0

2 Functions

Rating   Name   Duplication   Size   Complexity  
B writelog() 0 14 8
A check_logging_opt() 0 9 3
1
"""Определяет логирование процесса."""
2
import os
3
import codecs
4
from typing import Union
5
from f_getconfig import getconfig
6
from datetime import datetime
7
8
timestamp = datetime.now().strftime("%d/%m/%Y, %H:%M:%S")
9
10
opt_logname: str = getconfig()['settings']['logname']
11
12
13
def check_logging_opt() -> Union[bool, str]:
14
    """Проверяет параметр логирования в конфиге."""
15
    opt_logging: str = getconfig()['settings']['logging']
16
    if opt_logging == 'True':
17
        return True
18
    elif opt_logging == 'False':
19
        return False
20
    else:
21
        return 'ERR'
22
23
24
def writelog(logmsg: str) -> None:
25
    """Пишет лог, если так указано в конфиге."""
26
    if os.path.isfile(opt_logname) is False:
27
        pass
28
    elif check_logging_opt() is True:
29
        if logmsg == 'init':
30
            with codecs.open(opt_logname, 'a', 'utf-8') as log:
31
                log.write(f'\n\n{timestamp} - Start Program\n----------\n')
32
        else:
33
            with codecs.open(opt_logname, 'a', 'utf-8') as log:
34
                log.write(f'{timestamp} - {logmsg}\n')
35
    elif check_logging_opt() == 'ERR':
36
        with codecs.open(opt_logname, 'a', 'utf-8') as log:
37
            log.write(f'{timestamp} - Logging config error!\n')
38