Author: jure
Date: Mon Feb 18 13:53:53 2013
New Revision: 1447258
URL: http://svn.apache.org/r1447258
Log:
#355, enhanced reuse of product environment logger, patch
t355_r1446579_product_env_logging_inherit.diff applied (from Olemis)
Modified:
incubator/bloodhound/branches/bep_0003_multiproduct/bloodhound_multiproduct/multiproduct/env.py
Modified:
incubator/bloodhound/branches/bep_0003_multiproduct/bloodhound_multiproduct/multiproduct/env.py
URL:
http://svn.apache.org/viewvc/incubator/bloodhound/branches/bep_0003_multiproduct/bloodhound_multiproduct/multiproduct/env.py?rev=1447258&r1=1447257&r2=1447258&view=diff
==============================================================================
---
incubator/bloodhound/branches/bep_0003_multiproduct/bloodhound_multiproduct/multiproduct/env.py
(original)
+++
incubator/bloodhound/branches/bep_0003_multiproduct/bloodhound_multiproduct/multiproduct/env.py
Mon Feb 18 13:53:53 2013
@@ -551,29 +551,40 @@ class ProductEnvironment(Component, Comp
"""Initialize the logging sub-system."""
from trac.log import logger_handler_factory
logtype = self.log_type
+ logfile = self.log_file
+ format = self.log_format
+
self.parent.log.debug("Log type '%s' for product '%s'",
logtype, self.product.prefix)
+
+ # Force logger inheritance on identical configuration
+ if (logtype, logfile, format) == (self.parent.log_type,
+ self.parent.log_file, self.parent.log_format):
+ logtype = 'inherit'
+
if logtype == 'inherit':
- logtype = self.parent.log_type
- logfile = self.parent.log_file
- format = self.parent.log_format
+ self.log = self.parent.log
+ self._log_handler = self.parent._log_handler
+ self.parent.log.warning("Inheriting parent logger for product
'%s'",
+ self.product.prefix)
else:
- logfile = self.log_file
- format = self.log_format
- if logtype == 'file' and not os.path.isabs(logfile):
- logfile = os.path.join(self.get_log_dir(), logfile)
- logid = 'Trac.%s.%s' % \
- (sha1(self.parent.path).hexdigest(), self.product.prefix)
- if format:
- format = format.replace('$(', '%(') \
- .replace('%(path)s', self.path) \
- .replace('%(basename)s', os.path.basename(self.path)) \
- .replace('%(project)s', self.project_name)
- self.log, self._log_handler = logger_handler_factory(
- logtype, logfile, self.log_level, logid, format=format)
+ if logtype == 'file' and not os.path.isabs(logfile):
+ logfile = os.path.join(self.get_log_dir(), logfile)
+ logid = 'Trac.%s.%s' % \
+ (sha1(self.parent.path).hexdigest(), self.product.prefix)
+ if format:
+ format = format.replace('$(', '%(') \
+ .replace('%(path)s', self.path) \
+ .replace('%(basename)s', os.path.basename(self.path))
\
+ .replace('%(project)s', self.project_name)
+ self.log, self._log_handler = logger_handler_factory(
+ logtype, logfile, self.log_level, logid, format=format)
from trac import core, __version__ as VERSION
- self.log.info('-' * 32 + ' environment startup [Trac %s] ' + '-' * 32,
+ self.log.info('-' * 32 +
+ ' product %s environment startup [Trac %s] ' +
+ '-' * 32,
+ self.product.prefix,
get_pkginfo(core).get('version', VERSION))
def needs_upgrade(self):