forked from w-okada/voice-changer
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathlog_control.py
More file actions
100 lines (74 loc) · 3.27 KB
/
log_control.py
File metadata and controls
100 lines (74 loc) · 3.27 KB
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
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
import logging
import traceback
class UvicornSuppressFilter(logging.Filter):
def filter(self, record):
return False
class NullHandler(logging.Handler):
def emit(self, record):
pass
class DebugStreamHandler(logging.StreamHandler):
def emit(self, record):
try:
super().emit(record)
except Exception as e:
print(f"Error logging message: {e}", file=sys.stderr)
traceback.print_exc()
class DebugFileHandler(logging.FileHandler):
def emit(self, record):
try:
super().emit(record)
except Exception as e:
print(f"Error writing log message to file: {e}", file=sys.stderr)
traceback.print_exc()
class VoiceChangaerLogger:
_instance = None
@classmethod
def get_instance(cls):
if cls._instance is None:
cls._instance = cls()
return cls._instance
def __init__(self):
# logger = logging.getLogger("uvicorn.error")
# logger.addFilter(UvicornSuppressFilter())
# logging.basicConfig(filename='myapp.log', level=logging.INFO)
# logging.basicConfig(level=logging.NOTSET)
logging.root.handlers = [NullHandler()]
logger = logging.getLogger("fairseq.tasks.hubert_pretraining")
logger.addFilter(UvicornSuppressFilter())
logger = logging.getLogger("fairseq.models.hubert.hubert")
logger.addFilter(UvicornSuppressFilter())
logger = logging.getLogger("fairseq.tasks.text_to_speech")
logger.addFilter(UvicornSuppressFilter())
logger = logging.getLogger("numba.core.ssa")
logger.addFilter(UvicornSuppressFilter())
logger = logging.getLogger("numba.core.interpreter")
logger.addFilter(UvicornSuppressFilter())
logger = logging.getLogger("numba.core.byteflow")
logger.addFilter(UvicornSuppressFilter())
# logger.propagate = False
logger = logging.getLogger("multipart.multipart")
logger.propagate = False
logging.getLogger("asyncio").setLevel(logging.WARNING)
logger = logging.getLogger("vcclient")
logger.setLevel(logging.DEBUG)
self.logger = logger
def initialize(self, initialize: bool):
if not self.logger.handlers:
if initialize:
# file_handler = logging.FileHandler("vcclient.log", encoding="utf-8", mode="w")
file_handler = DebugFileHandler("vcclient.log", encoding="utf-8", mode="w")
else:
# file_handler = logging.FileHandler("vcclient.log", encoding="utf-8")
file_handler = DebugFileHandler("vcclient.log", encoding="utf-8")
file_formatter = logging.Formatter("%(asctime)s - %(name)s - %(levelname)s - %(process)d - %(message)s")
file_handler.setFormatter(file_formatter)
file_handler.setLevel(logging.DEBUG)
self.logger.addHandler(file_handler)
stream_formatter = logging.Formatter("%(message)s")
# stream_handler = logging.StreamHandler()
stream_handler = DebugStreamHandler()
stream_handler.setFormatter(stream_formatter)
stream_handler.setLevel(logging.INFO)
self.logger.addHandler(stream_handler)
def getLogger(self):
return self.logger