MCPcopy Index your code
hub / github.com/modelscope/modelscope / get_logger

Function get_logger

modelscope/utils/logger.py:17–77  ·  view source on GitHub ↗

Get logging logger Args: log_file: Log filename, if specified, file handler will be added to logger log_level: Logging level. file_mode: Specifies the mode to open the file, if filename is specified (if filemode is unspecified, it defaults to 'w'

(log_file: Optional[str] = None,
               log_level: int = default_log_level,
               file_mode: str = 'w')

Source from the content-addressed store, hash-verified

15
16
17def get_logger(log_file: Optional[str] = None,
18 log_level: int = default_log_level,
19 file_mode: str = 'w'):
20 """ Get logging logger
21
22 Args:
23 log_file: Log filename, if specified, file handler will be added to
24 logger
25 log_level: Logging level.
26 file_mode: Specifies the mode to open the file, if filename is
27 specified (if filemode is unspecified, it defaults to 'w').
28 """
29
30 logger_name = __name__.split('.')[0]
31 logger = logging.getLogger(logger_name)
32 logger.propagate = False
33 if logger_name in init_loggers:
34 add_file_handler_if_needed(logger, log_file, file_mode, log_level)
35 if logger.level != log_level:
36 logger.setLevel(log_level)
37 return logger
38
39 # handle duplicate logs to the console
40 # Starting in 1.8.0, PyTorch DDP attaches a StreamHandler <stderr> (NOTSET)
41 # to the root logger. As logger.propagate is True by default, this root
42 # level handler causes logging messages from rank>0 processes to
43 # unexpectedly show up on the console, creating much unwanted clutter.
44 # To fix this issue, we set the root logger's StreamHandler, if any, to log
45 # at the ERROR level.
46 torch_dist = False
47 is_worker0 = True
48 if iutil.find_spec('torch') is not None:
49 from modelscope.utils.torch_utils import is_dist, is_master
50 torch_dist = is_dist()
51 is_worker0 = is_master()
52
53 if torch_dist:
54 for handler in logger.root.handlers:
55 if type(handler) is logging.StreamHandler:
56 handler.setLevel(logging.ERROR)
57
58 stream_handler = logging.StreamHandler()
59 handlers = [stream_handler]
60
61 if is_worker0 and log_file is not None:
62 file_handler = logging.FileHandler(log_file, file_mode)
63 handlers.append(file_handler)
64
65 for handler in handlers:
66 handler.setFormatter(formatter)
67 handler.setLevel(log_level)
68 logger.addHandler(handler)
69
70 if is_worker0:
71 logger.setLevel(log_level)
72 else:
73 logger.setLevel(logging.ERROR)
74

Callers 15

weight_diff.pyFile · 0.90
megatron_utils.pyFile · 0.90
config.pyFile · 0.90
import_utils.pyFile · 0.90
automodel_utils.pyFile · 0.90
thread_utils.pyFile · 0.90
checkpoint.pyFile · 0.90
file_utils.pyFile · 0.90
url_utils.pyFile · 0.90
deploy_checker.pyFile · 0.90
device.pyFile · 0.90

Calls 4

is_distFunction · 0.90
is_masterFunction · 0.90
appendMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…