MCPcopy
hub / github.com/InternLM/lmdeploy / get_logger

Function get_logger

lmdeploy/utils.py:134–201  ·  view source on GitHub ↗

Initialize and get a logger by name. If the logger has not been initialized, this method will initialize the logger by adding one or two handlers, otherwise the initialized logger will be directly returned. During initialization, a StreamHandler will always be added. If `log_file` i

(name: str | None = None,
               log_file: str | None = None,
               log_level: int = logging.INFO,
               file_mode: str = 'a',
               log_formatter: str = _FORMAT)

Source from the content-addressed store, hash-verified

132 '%(filename)s:%(lineno)d - %(message)s')
133
134def get_logger(name: str | None = None,
135 log_file: str | None = None,
136 log_level: int = logging.INFO,
137 file_mode: str = 'a',
138 log_formatter: str = _FORMAT) -> Logger:
139 """Initialize and get a logger by name.
140
141 If the logger has not been initialized, this method will initialize the
142 logger by adding one or two handlers, otherwise the initialized logger will
143 be directly returned. During initialization, a StreamHandler will always be
144 added. If `log_file` is specified, a FileHandler will also be added.
145 Args:
146 name (str): Logger name.
147 log_file (str | None): The log filename. If specified, a FileHandler
148 will be added to the logger.
149 log_level (int): The logger level.
150 file_mode (str): The file mode used in opening log file.
151 Defaults to 'a'.
152 log_formatter (str): The logger output format.
153 Returns:
154 logging.Logger: The expected logger.
155 """
156 logger = logging.getLogger(name)
157 if name in logger_initialized:
158 return logger
159 # handle hierarchical names
160 # e.g., logger "a" is initialized, then logger "a.b" will skip the
161 # initialization since it is a child of "a".
162 for logger_name in logger_initialized:
163 if name.startswith(logger_name):
164 return logger
165
166 # handle duplicate logs to the console
167 for handler in logger.root.handlers:
168 if type(handler) is logging.StreamHandler:
169 handler.setLevel(logging.ERROR)
170
171 stream_handler = logging.StreamHandler(stream=sys.stdout)
172 handlers = [stream_handler]
173
174 # set log_file from env
175 log_file = log_file or os.getenv('LMDEPLOY_LOG_FILE')
176
177 if log_file is not None:
178 log_file = os.path.expanduser(log_file)
179 log_dir = os.path.dirname(log_file)
180 if log_dir:
181 os.makedirs(log_dir, exist_ok=True)
182 # Here, the default behaviour of the official logger is 'a'. Thus, we
183 # provide an interface to change the file mode to the default
184 # behaviour.
185 file_handler = logging.FileHandler(log_file, file_mode)
186 handlers.append(file_handler)
187
188 formatter = ColorFormatter(log_formatter)
189 for handler in handlers:
190 handler.setFormatter(formatter)
191 handler.setLevel(logging.DEBUG)

Callers 15

__init__Method · 0.90
decodeMethod · 0.90
__init__Method · 0.90
model.pyFile · 0.90
video_loader.pyFile · 0.90
time_series.pyFile · 0.90
video.pyFile · 0.90
llava.pyFile · 0.90
glm4_v.pyFile · 0.90
llava_next.pyFile · 0.90
llava_hf.pyFile · 0.90

Calls 4

ColorFormatterClass · 0.85
appendMethod · 0.45

Tested by

no test coverage detected