cars.core.cars_logging ====================== .. py:module:: cars.core.cars_logging .. autoapi-nested-parse:: cCars logging module: contains cars logging setup logger for main thread and workers Attributes ---------- .. autoapisummary:: cars.core.cars_logging.SYS_PLATFORM cars.core.cars_logging.IS_WIN cars.core.cars_logging.PROGRESS cars.core.cars_logging.PROFILING_LOG cars.core.cars_logging.profiling_logger cars.core.cars_logging._WARNING_COUNTER cars.core.cars_logging._WARNING_LOCK Classes ------- .. autoapisummary:: cars.core.cars_logging.WarningCounterHandler cars.core.cars_logging.ProfilingFilter cars.core.cars_logging.ProfilinglHandler cars.core.cars_logging.WorkerHandler cars.core.cars_logging.LogSender Functions --------- .. autoapisummary:: cars.core.cars_logging.lock cars.core.cars_logging.reset_warning_count cars.core.cars_logging.get_warning_count cars.core.cars_logging.setup_logging cars.core.cars_logging.add_progress_message cars.core.cars_logging.add_profiling_message cars.core.cars_logging.wrap_logger cars.core.cars_logging.logger_func Module Contents --------------- .. py:data:: SYS_PLATFORM .. py:data:: IS_WIN .. py:function:: lock(file) Lock file for safe writing (Windows version) .. py:data:: PROGRESS :value: 21 .. py:data:: PROFILING_LOG :value: 15 .. py:data:: profiling_logger .. py:data:: _WARNING_COUNTER :value: 0 .. py:data:: _WARNING_LOCK .. py:function:: reset_warning_count() -> None Reset global warning counting state for a fresh pipeline run. .. py:function:: get_warning_count() -> int Get total warning count captured by WarningCounterHandler. .. py:class:: WarningCounterHandler(level=NOTSET) Bases: :py:obj:`logging.Handler` In-process warning counter handler. .. py:method:: emit(record) Do whatever it takes to actually log the specified logging record. This version is intended to be implemented by subclasses and so raises a NotImplementedError. .. py:class:: ProfilingFilter(name='') Bases: :py:obj:`logging.Filter` ProfilingFilter .. py:method:: filter(record) Filter message .. py:class:: ProfilinglHandler(filename, mode='a', encoding=None, delay=False) Bases: :py:obj:`logging.FileHandler` Profiling .. py:attribute:: sender .. py:method:: emit(record) Emit .. py:class:: WorkerHandler(filename, mode='a', encoding=None, delay=False) Bases: :py:obj:`logging.FileHandler` Profiling .. py:attribute:: sender .. py:method:: emit(record) Emit .. py:class:: LogSender(log_file) LogSender .. py:attribute:: log_file .. py:method:: write_log(msg) -> None Write log .. py:function:: setup_logging(loglevel='PROGRESS', out_dir=None, log_dir=None, pipeline='', in_worker=False, global_log_file=None, use_stdout=True) Setup the CARS logging configuration :param loglevel: log level default WARNING :param use_stdout: whether to add stdout handler (default: True) .. py:function:: add_progress_message(message) Add enforced message with INFO level to stdout and logging file :param message: logging message .. py:function:: add_profiling_message(message) Add enforced message with PROFILING_LOG level to stdout and logging file :param message: logging message .. py:function:: wrap_logger(func, log_dir, log_level) Wrapper logger function to wrap worker func and setup the worker logger :param func: wrapped function :param log_dir: output directory of worker logs :param log_level: logging level of the worker logs .. py:function:: logger_func(*args, **kwargs) Logger function to wrap worker func (with non local method) and setup the worker logger :param argv: args of func :param kwargs: kwargs of func