From 10268e7a76dfe72063d682e6043891b967cbad39 Mon Sep 17 00:00:00 2001 From: Cody Logan Date: Tue, 7 Dec 2021 15:12:41 -0800 Subject: Different log levels for file and console --- wikiget/wikiget.py | 24 +++++++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) diff --git a/wikiget/wikiget.py b/wikiget/wikiget.py index 4098e03..6a537ba 100644 --- a/wikiget/wikiget.py +++ b/wikiget/wikiget.py @@ -92,19 +92,37 @@ def main(): elif args.quiet: loglevel = logging.ERROR - # set up logger + # configure logging: + # console log level is set via -v, -vv, and -q options + # file log level is always info (TODO: add debug option) if args.logfile: + # log to console and file logging.basicConfig( level=logging.INFO, - format="%(asctime)s [%(levelname)s] %(message)s", + format="%(asctime)s [%(levelname)-7s] %(message)s", filename=args.logfile ) + + console = logging.StreamHandler() + # TODO: even when loglevel is set to logging.DEBUG, + # debug messages aren't printing to console + console.setLevel(loglevel) + console.setFormatter( + logging.Formatter("[%(levelname)s] %(message)s") + ) + logging.getLogger("").addHandler(console) else: + # log only to console logging.basicConfig( level=loglevel, format="[%(levelname)s] %(message)s" ) + # log events are appended to the file if it already exists, + # so note the start of a new download session + logging.info(f"Starting download session using wikiget {wikiget_version}") + # logging.info(f"Log level is set to {loglevel}") + if args.batch: # batch download mode input_file = args.FILE @@ -131,7 +149,7 @@ def main(): url = url.strip() # keep track of batch file line numbers for # debugging/logging purposes - logging.info(f"Downloading file {line_num} ({url}):") + logging.info(f"Downloading '{url}' at line {line_num}:") download(url, args) else: # single download mode -- cgit v1.2.3