summaryrefslogtreecommitdiff
path: root/read.py
blob: 4a30a4b445674710d245ba7be6cf3be774560983 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
#!/usr/bin/env python

from stdlib import *
from datetime import datetime
from configparser import ConfigParser as config
from configparser import NoOptionError, NoSectionError
from os import path


expanduser = path.expanduser

# function to get config
if not path.isfile(f"{expanduser('~')}/.config/jlog/jlog.conf"):
    raise FileNotFoundError(f"Config {expanduser('~')}/.config/jlog/jlog.conf not found")
else:
    printinfo(f"Using config file {expanduser('~')}/.config/jlog/jlog.conf")
config = config()
config.read(f"{expanduser('~')}/.config/jlog/jlog.conf")
try:
    log_file = config.get('global', 'file').replace('~', expanduser('~'))
except NoSectionError:
    raise NoSectionError(f"Section global not found in {expanduser('~')}/.config/jlog/jlog.conf")
except NoOptionError:
    log_file = f"{expanduser('~')}/.config/jlog/jlog_{datetime.now()}"
if not path.isfile(log_file):
    printerror(f"Log file {log_file} not found")
    raise FileNotFoundError(f"Log file {log_file} not found")
else:
    printinfo(f"Using log file {log_file}")

def colorize(log: str) -> str:
    lines = log.splitlines()
    for i in range(len(lines)):
        lines[i] = lines[i].replace('DEBUG', f"{ascii.color.lcyan}DEBUG{ascii.color.reset}")
        lines[i] = lines[i].replace('INFO', f"{ascii.color.green}INFO{ascii.color.reset}")
        lines[i] = lines[i].replace('WARNING', f"{ascii.color.yellow}WARNING{ascii.color.reset}")
        lines[i] = lines[i].replace('ERROR', f"{ascii.color.lred}ERROR{ascii.color.reset}")
        lines[i] = lines[i].replace('CRITICAL', f"{ascii.color.red}CRITICAL{ascii.color.reset}")
        lines[i] = lines[i].replace('FATAL', f"{ascii.color.red}FATAL{ascii.color.reset}")

    return '\n'.join(lines)



# main function(process)
def get_log() -> str:
    return open(log_file, 'r').read()


# main function(ui)
def main() -> None:
    global log

    log = get_log()

    log = colorize(log)

if __name__ == "__main__":
    main()

aprintf(log, interval=0.001)