MCPcopy
hub / github.com/treeverse/dvc / setup

Function setup

dvc/logger.py:192–238  ·  view source on GitHub ↗
(level: int = logging.INFO, log_colors: bool = True)

Source from the content-addressed store, hash-verified

190
191
192def setup(level: int = logging.INFO, log_colors: bool = True) -> None:
193 colorama.init()
194
195 color_out = log_colors and bool(sys.stdout) and sys.stdout.isatty()
196 color_err = log_colors and bool(sys.stderr) and sys.stderr.isatty()
197
198 formatter = ColorFormatter(log_colors=color_out)
199
200 console_info = LoggerHandler(sys.stdout)
201 console_info.setLevel(logging.INFO)
202 console_info.setFormatter(formatter)
203 console_info.addFilter(exclude_filter(logging.WARNING))
204
205 console_debug = LoggerHandler(sys.stdout)
206 console_debug.setLevel(logging.DEBUG)
207 console_debug.setFormatter(formatter)
208 console_debug.addFilter(exclude_filter(logging.INFO))
209
210 add_logging_level("TRACE", logging.DEBUG - 5)
211
212 console_trace = LoggerHandler(sys.stdout)
213 console_trace.setLevel(logging.TRACE) # type: ignore[attr-defined]
214 console_trace.setFormatter(formatter)
215 console_trace.addFilter(exclude_filter(logging.DEBUG))
216
217 show_traceback = bool(os.environ.get("DVC_SHOW_TRACEBACK"))
218 err_formatter = ColorFormatter(log_colors=color_err, show_traceback=show_traceback)
219 console_errors = LoggerHandler(sys.stderr)
220 console_errors.setLevel(logging.WARNING)
221 console_errors.setFormatter(err_formatter)
222
223 for name in ["dvc", "dvc_objects", "dvc_data"]:
224 logger = logging.getLogger(name)
225 logger.setLevel(level)
226 for handler in [console_info, console_debug, console_trace, console_errors]:
227 logger.addHandler(handler)
228
229 if level >= logging.DEBUG:
230 # Unclosed session errors for asyncio/aiohttp are only available
231 # on the tracing mode for extensive debug purposes. They are really
232 # noisy, and this is potentially somewhere in the client library
233 # not managing their own session. Even though it is the best practice
234 # for them to do so, we can be assured that these errors raised when
235 # the object is getting deallocated, so no need to take any extensive
236 # action.
237 logging.getLogger("asyncio").setLevel(logging.CRITICAL)
238 logging.getLogger("aiohttp").setLevel(logging.CRITICAL)

Callers

nothing calls this directly

Calls 7

ColorFormatterClass · 0.85
LoggerHandlerClass · 0.85
exclude_filterFunction · 0.85
add_logging_levelFunction · 0.85
isattyMethod · 0.80
initMethod · 0.45
getMethod · 0.45

Tested by

no test coverage detected