MCPcopy Create free account
hub / github.com/294coder/Dif-PAN / PrintLogger

Class PrintLogger

utils/logger.py:95–132  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

93
94
95class PrintLogger:
96 def __init__(self, place, level=logging.DEBUG) -> None:
97 assert place.endswith(".log"), "@place should be a file path"
98
99 self.place = place
100
101 self.logger = logging.getLogger()
102 self.logger.setLevel(level)
103
104 _dir = os.path.dirname(place)
105 assert os.path.exists(_dir), f"dir {_dir} not exists"
106
107 file_handler = logging.FileHandler(place)
108 file_handler.setLevel(level)
109
110 stream_handler = logging.StreamHandler(sys.stdout)
111 stream_handler.setLevel(logging.INFO)
112
113 formatter = logging.Formatter(
114 r"%(asctime)s - %(levelname)s - %(message)s",
115 datefmt=r"%Y-%m-%d %H:%M:%S",
116 )
117 file_handler.setFormatter(formatter)
118 stream_handler.setFormatter(formatter)
119
120 self.logger.addHandler(file_handler)
121 self.logger.addHandler(stream_handler)
122
123 self.init_print()
124
125 def init_print(self):
126 self.log('log will print out in {}'.format(self.place))
127
128 def log(self, msg: str, level=logging.INFO):
129 self.logger.log(level, msg)
130
131 def print(self, *args, **kwargs):
132 self.log(*args, *kwargs)
133
134
135if __name__ == '__main__':

Callers 2

__init__Method · 0.85
logger.pyFile · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected