MCPcopy
hub / github.com/mandarons/icloud-docker / get_logger

Function get_logger

src/__init__.py:120–167  ·  view source on GitHub ↗

Return logger.

()

Source from the content-addressed store, hash-verified

118
119
120def get_logger():
121 """Return logger."""
122 logger = logging.getLogger()
123 logger_config = get_logger_config(config=read_config(config_path=os.environ.get(ENV_CONFIG_FILE_PATH_KEY, DEFAULT_CONFIG_FILE_PATH)))
124 if logger_config:
125 level_name = logging.getLevelName(level=logger_config["level"].upper())
126 logger.setLevel(level=level_name)
127
128 # Create handlers once and add them to root logger
129 file_handler = None
130 console_handler = None
131
132 if not log_handler_exists(
133 logger=logger,
134 handler_type=logging.FileHandler,
135 filename=logger_config["filename"],
136 ):
137 file_handler = logging.FileHandler(logger_config["filename"])
138 file_handler.setFormatter(
139 logging.Formatter(
140 "%(asctime)s :: %(levelname)s :: %(name)s :: %(filename)s :: %(lineno)d :: %(message)s",
141 ),
142 )
143 logger.addHandler(file_handler)
144
145 if not log_handler_exists(logger=logger, handler_type=logging.StreamHandler, stream=sys.stdout):
146 console_handler = logging.StreamHandler(sys.stdout)
147 console_handler.setFormatter(
148 ColorfulConsoleFormatter(
149 "%(asctime)s :: %(levelname)s :: %(name)s :: %(filename)s :: %(lineno)d :: %(message)s",
150 ),
151 )
152 logger.addHandler(console_handler)
153
154 # Configure icloudpy loggers to use the same level and enable propagation
155 icloudpy_loggers = [
156 logging.getLogger("icloudpy"),
157 logging.getLogger("icloudpy.base"),
158 logging.getLogger("icloudpy.services"),
159 logging.getLogger("icloudpy.services.photos"),
160 ]
161 for icloudpy_logger in icloudpy_loggers:
162 icloudpy_logger.setLevel(level=level_name)
163 # Enable propagation so messages go to root logger handlers
164 icloudpy_logger.propagate = True
165 # Remove any existing handlers to avoid duplicates
166 icloudpy_logger.handlers.clear()
167 return logger
168
169
170LOGGER = get_logger()

Callers 15

notify.pyFile · 0.90
config_parser.pyFile · 0.90
sync.pyFile · 0.90
sync_drive.pyFile · 0.90
sync_photos.pyFile · 0.90
usage.pyFile · 0.90

Calls 5

get_logger_configFunction · 0.85
read_configFunction · 0.85
log_handler_existsFunction · 0.85
clearMethod · 0.80

Tested by 3

test_get_loggerMethod · 0.72