summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sphinx/io.py4
-rw-r--r--sphinx/util/docutils.py7
2 files changed, 8 insertions, 3 deletions
diff --git a/sphinx/io.py b/sphinx/io.py
index 418e91b12..5868bd7b5 100644
--- a/sphinx/io.py
+++ b/sphinx/io.py
@@ -58,9 +58,7 @@ class SphinxBaseReader(standalone.Reader):
# type: () -> nodes.document
document = standalone.Reader.new_document(self)
reporter = document.reporter
- document.reporter = LoggingReporter(reporter.source, reporter.report_level,
- reporter.halt_level, reporter.debug_flag,
- reporter.error_handler)
+ document.reporter = LoggingReporter.from_reporter(reporter)
return document
diff --git a/sphinx/util/docutils.py b/sphinx/util/docutils.py
index 92e6c8c22..d24a8f827 100644
--- a/sphinx/util/docutils.py
+++ b/sphinx/util/docutils.py
@@ -167,6 +167,13 @@ class WarningStream(object):
class LoggingReporter(Reporter):
+ @classmethod
+ def from_reporter(cls, reporter):
+ # type: (Reporter) -> LoggingReporter
+ """Create an instance of LoggingReporter from other reporter object."""
+ return cls(reporter.source, reporter.report_level, reporter.halt_level,
+ reporter.debug_flag, reporter.error_handler)
+
def __init__(self, source, report_level, halt_level,
debug=False, error_handler='backslashreplace'):
# type: (unicode, int, int, bool, unicode) -> None