-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathLogger.py
executable file
·66 lines (58 loc) · 2.45 KB
/
Logger.py
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
62
63
64
65
66
#!/usr/bin/env python3
# -*- encoding: utf-8 -*-
'''
***********************************************************
* Author : Zhou Wei *
* Date : 2020/09/09 10:47:17 *
* E-mail : [email protected] *
* Version : -- *
* You are using the program scripted by Zhou Wei. *
* If you find some bugs, please *
* Please let me know and acknowledge in your publication. *
* Thank you! *
* Best wishes! *
***********************************************************
'''
import logging
class DispatchingFormatter:
def __init__(self, formatters, default_formatter):
self._formatters = formatters
self._default_formatter = default_formatter
def format(self, record):
formatter = self._formatters.get(record.name, self._default_formatter)
return formatter.format(record)
class Logger:
level_dict = {
'NOTSET' : logging.NOTSET,
'DEBUG' : logging.DEBUG,
'INFO' : logging.INFO,
'WARNING' : logging.WARNING,
'ERROR' : logging.ERROR,
'CRITICAL': logging.CRITICAL,
}
ChangeFrom = DispatchingFormatter(
{ 'c' : logging.Formatter( '[%(asctime)s] [%(levelname)-4s]: %(message)s', '%Y-%m-%d %H:%M:%S'),
'p' : logging.Formatter( '[%(levelname)-4s]: %(message)s'),
'n' : logging.Formatter( '%(message)s' ),
},
logging.Formatter('%(message)s')
)
def __init__(self, outpath, filemode='w', clevel = 'INFO', Flevel = 'INFO'):
logging.basicConfig(
level = Logger.level_dict[clevel] ,
format = '[%(asctime)s] [%(levelname)-4s]: %(message)s',
datefmt = '%Y-%m-%d %H:%M:%S',
filename = None,
)
File = logging.FileHandler(outpath, mode= filemode)
File.setLevel(Logger.level_dict[Flevel])
File.setFormatter(Logger.ChangeFrom)
logging.getLogger().addHandler(File)
self.R = logging
self.C = logging.getLogger('c')
self.P = logging.getLogger('p')
self.N = logging.getLogger('n')
self.CI = logging.getLogger('c').info
self.NI = logging.getLogger('n').info
self.CW = logging.getLogger('c').warning
self.NW = logging.getLogger('n').warning