From 41c71960d8a3a231dc4ace5c9676cd654d97b83d Mon Sep 17 00:00:00 2001 From: Joel Grus Date: Mon, 10 Dec 2018 20:17:16 -0800 Subject: [PATCH] instantiate multiprocessing.log_to_stderr lazily (#2166) --- .../multiprocess_dataset_reader.py | 20 +++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/allennlp/data/dataset_readers/multiprocess_dataset_reader.py b/allennlp/data/dataset_readers/multiprocess_dataset_reader.py index 5d2537b444c..6a7df20b41e 100644 --- a/allennlp/data/dataset_readers/multiprocess_dataset_reader.py +++ b/allennlp/data/dataset_readers/multiprocess_dataset_reader.py @@ -8,8 +8,24 @@ from allennlp.data.dataset_readers.dataset_reader import DatasetReader from allennlp.data.instance import Instance -logger = log_to_stderr() # pylint: disable=invalid-name -logger.setLevel(logging.INFO) +class logger: + """ + multiprocessing.log_to_stderr causes some output in the logs + even when we don't use this dataset reader. This is a small hack + to instantiate the stderr logger lazily only when it's needed + (which is only when using the MultiprocessDatasetReader) + """ + _logger = None + + @classmethod + def info(cls, message: str) -> None: + # pylint: disable=no-self-use + if cls._logger is None: + cls._logger = log_to_stderr() + cls._logger.setLevel(logging.INFO) + + cls._logger.info(message) + def _worker(reader: DatasetReader, input_queue: Queue,