diff --git a/gallery_dl/__init__.py b/gallery_dl/__init__.py index 71715ae5..905e8520 100644 --- a/gallery_dl/__init__.py +++ b/gallery_dl/__init__.py @@ -55,6 +55,7 @@ def main(): parser = option.build_parser() args = parser.parse_args() + logging.getLogger().setLevel(args.loglevel) if args.cfgfiles: config.load(*args.cfgfiles, strict=True) @@ -102,6 +103,7 @@ def main(): for url in urls: try: + log.debug("Starting %s for '%s'", jobtype.__name__, url) jobtype(url).run() except exception.NoExtractorError: log.error("No suitable extractor found for '%s'", url) diff --git a/gallery_dl/job.py b/gallery_dl/job.py index 7453305c..cd6c54b4 100644 --- a/gallery_dl/job.py +++ b/gallery_dl/job.py @@ -21,6 +21,7 @@ class Job(): self.extractor = extractor.find(url) if self.extractor is None: raise exception.NoExtractorError(url) + self.extractor.log.debug("Using %s", self.extractor.__class__.__name__) items = config.get(("images",)) if items: @@ -51,6 +52,15 @@ class Job(): log.error("The %s at '%s' does not exist", res, self.url) except exception.StopExtraction: pass + except Exception as exc: + try: + err = ": ".join(exc.args[0].reason.args[0].split(": ")[1:]) + except Exception: + err = str(exc) + log.error("An unexpected error occurred: %s - %s", + exc.__class__.__name__, err) + log.debug("Traceback", exc_info=True) + def dispatch(self, msg): """Call the appropriate message handler""" diff --git a/gallery_dl/option.py b/gallery_dl/option.py index 9a87c9ad..3fd27e93 100644 --- a/gallery_dl/option.py +++ b/gallery_dl/option.py @@ -136,6 +136,11 @@ def build_parser(): "--list-modules", dest="list_modules", action="store_true", help="Print a list of available modules/supported sites", ) + parser.add_argument( + "-v", "--verbose", dest="loglevel", action="store_const", + const=logging.DEBUG, default=logging.INFO, + help="Print various debugging information", + ) parser.add_argument( "--version", action="version", version=__version__, help="Print program version and exit"