Sfoglia il codice sorgente

Configurable verbosity for log file and stderr

master
JustAnotherArchivist 3 anni fa
parent
commit
b29db245fb
1 ha cambiato i file con 12 aggiunte e 3 eliminazioni
  1. +12
    -3
      qwarc/cli.py

+ 12
- 3
qwarc/cli.py Vedi File

@@ -9,19 +9,24 @@ import qwarc.version
import sys import sys




def setup_logging(logFilename):
def setup_logging(logFilename, logLevel, logLevelStderr):
if logLevelStderr is None:
logLevelStderr = logLevel

rootLogger = logging.getLogger() rootLogger = logging.getLogger()
rootLogger.handlers = [] rootLogger.handlers = []
rootLogger.setLevel(logging.INFO)
rootLogger.setLevel(min(logLevel, logLevelStderr))


formatter = qwarc.utils.LogFormatter() formatter = qwarc.utils.LogFormatter()


fileHandler = logging.FileHandler(logFilename) fileHandler = logging.FileHandler(logFilename)
fileHandler.setFormatter(formatter) fileHandler.setFormatter(formatter)
fileHandler.setLevel(logLevel)
rootLogger.addHandler(fileHandler) rootLogger.addHandler(fileHandler)


stderrHandler = logging.StreamHandler() stderrHandler = logging.StreamHandler()
stderrHandler.setFormatter(formatter) stderrHandler.setFormatter(formatter)
stderrHandler.setLevel(logLevelStderr)
rootLogger.addHandler(stderrHandler) rootLogger.addHandler(stderrHandler)




@@ -43,6 +48,8 @@ def main():
parser = argparse.ArgumentParser(formatter_class = argparse.ArgumentDefaultsHelpFormatter) parser = argparse.ArgumentParser(formatter_class = argparse.ArgumentDefaultsHelpFormatter)
parser.add_argument('--version', action = 'version', version = f'qwarc {qwarc.version.__version__}') parser.add_argument('--version', action = 'version', version = f'qwarc {qwarc.version.__version__}')
parser.add_argument('--log', metavar = 'LOGFILE', default = './qwarc.log') parser.add_argument('--log', metavar = 'LOGFILE', default = './qwarc.log')
parser.add_argument('--loglevel', metavar = 'LEVEL', help = 'verbosity of the log file', choices = ('INFO', 'DEBUG'), default = 'INFO')
parser.add_argument('--loglevelstderr', metavar = 'LEVEL', help = 'verbosity of the log messages on stderr; set equal to the log file level if None', choices = (None, 'CRITICAL', 'ERROR', 'WARNING', 'INFO', 'DEBUG'), default = None)
parser.add_argument('--database', metavar = 'DBFILE', default = './qwarc.db') parser.add_argument('--database', metavar = 'DBFILE', default = './qwarc.db')
parser.add_argument('--warc', metavar = 'PREFIX', help = 'prefix for the WARC filenames', default = './qwarc') parser.add_argument('--warc', metavar = 'PREFIX', help = 'prefix for the WARC filenames', default = './qwarc')
parser.add_argument('--concurrency', type = int, default = 1) parser.add_argument('--concurrency', type = int, default = 1)
@@ -53,11 +60,13 @@ def main():
parser.add_argument('specfile') parser.add_argument('specfile')


args = parser.parse_args() args = parser.parse_args()
args.loglevel = getattr(logging, args.loglevel)
args.loglevelstderr = getattr(logging, args.loglevelstderr) if args.loglevelstderr is not None else args.loglevel


if not check_files(args.specfile, args.log): if not check_files(args.specfile, args.log):
sys.exit(1) sys.exit(1)


setup_logging(args.log)
setup_logging(args.log, args.loglevel, args.loglevelstderr)


spec = importlib.util.spec_from_file_location('spec', args.specfile) spec = importlib.util.spec_from_file_location('spec', args.specfile)
specMod = importlib.util.module_from_spec(spec) specMod = importlib.util.module_from_spec(spec)


Caricamento…
Annulla
Salva