From 28f5de903a9521eaa7fb2cf339b16290fce844bf Mon Sep 17 00:00:00 2001 From: Sam Ruby Date: Fri, 15 Jun 2007 12:22:54 -0400 Subject: [PATCH] Support verbose option again --- filters/mememe.plugin | 2 +- planet/__init__.py | 8 +++++--- planet/config.py | 4 +++- planet/expunge.py | 3 +-- planet/shell/__init__.py | 2 +- planet/spider.py | 2 +- planet/splice.py | 4 ++-- tests/test_expunge.py | 3 ++- tests/test_idindex.py | 10 +++++----- tests/test_spider.py | 3 ++- 10 files changed, 23 insertions(+), 18 deletions(-) diff --git a/filters/mememe.plugin b/filters/mememe.plugin index 36dea83..9efee9f 100644 --- a/filters/mememe.plugin +++ b/filters/mememe.plugin @@ -25,7 +25,7 @@ from htmlentitydefs import entitydefs import planet from planet import config, feedparser from planet.spider import filename -log = planet.getLogger(config.log_level(),config.log_format()) +log = planet.logger options = config.filter_options(sys.argv[0]) MEMES_ATOM = os.path.join(config.output_dir(),'memes.atom') diff --git a/planet/__init__.py b/planet/__init__.py index 61ac2a2..f75ea6a 100644 --- a/planet/__init__.py +++ b/planet/__init__.py @@ -1,6 +1,7 @@ xmlns = 'http://planet.intertwingly.net/' logger = None +loggerParms = None import os, sys, re import config @@ -11,8 +12,8 @@ from urlparse import urljoin def getLogger(level, format): """ get a logger with the specified log level """ - global logger - if logger: return logger + global logger, loggerParms + if logger and loggerParms == (level,format): return logger try: import logging @@ -21,13 +22,14 @@ def getLogger(level, format): import compat_logging as logging logging.basicConfig(format=format) - logging.getLogger().setLevel(logging.getLevelName(level)) logger = logging.getLogger("planet.runner") + logger.setLevel(logging.getLevelName(level)) try: logger.warning except: logger.warning = logger.warn + loggerParms = (level,format) return logger # Configure feed parser diff --git a/planet/config.py b/planet/config.py index fb436e8..5ffb1cb 100644 --- a/planet/config.py +++ b/planet/config.py @@ -139,7 +139,9 @@ def load(config_file): import config, planet from planet import opml, foaf - log = planet.getLogger(config.log_level(),config.log_format()) + log = planet.logger + if not log: + log = planet.getLogger(config.log_level(),config.log_format()) # Theme support theme = config.output_theme() diff --git a/planet/expunge.py b/planet/expunge.py index 9f890b9..de7e511 100644 --- a/planet/expunge.py +++ b/planet/expunge.py @@ -5,8 +5,7 @@ from spider import filename def expungeCache(): """ Expunge old entries from a cache of entries """ - import planet - log = planet.getLogger(config.log_level(),config.log_format()) + log = planet.logger log.info("Determining feed subscriptions") entry_count = {} diff --git a/planet/shell/__init__.py b/planet/shell/__init__.py index dd2abd3..49b8557 100644 --- a/planet/shell/__init__.py +++ b/planet/shell/__init__.py @@ -6,7 +6,7 @@ logged_modes = [] def run(template_file, doc, mode='template'): """ select a template module based on file extension and execute it """ - log = planet.getLogger(planet.config.log_level(),planet.config.log_format()) + log = planet.logger if mode == 'template': dirs = planet.config.template_directories() diff --git a/planet/spider.py b/planet/spider.py index b18a787..e6b4932 100644 --- a/planet/spider.py +++ b/planet/spider.py @@ -329,7 +329,7 @@ def httpThread(thread_index, input_queue, output_queue, log): def spiderPlanet(only_if_new = False): """ Spider (fetch) an entire planet """ - log = planet.getLogger(config.log_level(),config.log_format()) + log = planet.logger global index index = True diff --git a/planet/splice.py b/planet/splice.py index ccc55e0..f751975 100644 --- a/planet/splice.py +++ b/planet/splice.py @@ -9,7 +9,7 @@ from planet import idindex def splice(): """ Splice together a planet from a cache of entries """ import planet - log = planet.getLogger(config.log_level(),config.log_format()) + log = planet.logger log.info("Loading cached data") cache = config.cache_directory() @@ -109,7 +109,7 @@ def splice(): def apply(doc): output_dir = config.output_dir() if not os.path.exists(output_dir): os.makedirs(output_dir) - log = planet.getLogger(config.log_level(),config.log_format()) + log = planet.logger planet_filters = config.filters('Planet') diff --git a/tests/test_expunge.py b/tests/test_expunge.py index fc93b52..f4adb78 100644 --- a/tests/test_expunge.py +++ b/tests/test_expunge.py @@ -15,7 +15,7 @@ configfile = 'tests/data/expunge/config.ini' class ExpungeTest(unittest.TestCase): def setUp(self): # silence errors - planet.logger = None + self.original_logger = planet.logger planet.getLogger('CRITICAL',None) try: @@ -29,6 +29,7 @@ class ExpungeTest(unittest.TestCase): def tearDown(self): shutil.rmtree(workdir) os.removedirs(os.path.split(workdir)[0]) + planet.logger = self.original_logger def test_expunge(self): config.load(configfile) diff --git a/tests/test_idindex.py b/tests/test_idindex.py index a383eb6..c34bb4f 100644 --- a/tests/test_idindex.py +++ b/tests/test_idindex.py @@ -1,18 +1,18 @@ #!/usr/bin/env python -import unittest -from planet import idindex, config, logger +import unittest, planet +from planet import idindex, config class idIndexTest(unittest.TestCase): def setUp(self): # silence errors - import planet - planet.logger = None + self.original_logger = planet.logger planet.getLogger('CRITICAL',None) def tearDown(self): idindex.destroy() + planet.logger = self.original_logger def test_unicode(self): from planet.spider import filename @@ -69,6 +69,6 @@ class idIndexTest(unittest.TestCase): try: module = 'dbhash' except ImportError: - logger.warn("dbhash is not available => can't test id index") + planet.logger.warn("dbhash is not available => can't test id index") for method in dir(idIndexTest): if method.startswith('test_'): delattr(idIndexTest,method) diff --git a/tests/test_spider.py b/tests/test_spider.py index 1936f8d..dafbda2 100644 --- a/tests/test_spider.py +++ b/tests/test_spider.py @@ -12,7 +12,7 @@ configfile = 'tests/data/spider/config.ini' class SpiderTest(unittest.TestCase): def setUp(self): # silence errors - planet.logger = None + self.original_logger = planet.logger planet.getLogger('CRITICAL',None) try: @@ -24,6 +24,7 @@ class SpiderTest(unittest.TestCase): def tearDown(self): shutil.rmtree(workdir) os.removedirs(os.path.split(workdir)[0]) + planet.logger = self.original_logger def test_filename(self): self.assertEqual(os.path.join('.', 'example.com,index.html'),