summaryrefslogtreecommitdiffstats
path: root/ipalib/plugable.py
diff options
context:
space:
mode:
authorJason Gerard DeRose <jderose@redhat.com>2008-10-31 13:27:42 -0600
committerJason Gerard DeRose <jderose@redhat.com>2008-10-31 13:27:42 -0600
commitcdfb7bfd5ebc1f5e44f4ee60cec14354040a0a72 (patch)
treeb2aaa98a552792597cefeb6c78b0b43732a54cfa /ipalib/plugable.py
parent140458cfc694a1b77100c81a58600365627e7758 (diff)
downloadfreeipa-cdfb7bfd5ebc1f5e44f4ee60cec14354040a0a72.tar.gz
freeipa-cdfb7bfd5ebc1f5e44f4ee60cec14354040a0a72.tar.xz
freeipa-cdfb7bfd5ebc1f5e44f4ee60cec14354040a0a72.zip
Logging is now configured in API.bootstrap(); removed depreciated util.configure_logging() function
Diffstat (limited to 'ipalib/plugable.py')
-rw-r--r--ipalib/plugable.py52
1 files changed, 43 insertions, 9 deletions
diff --git a/ipalib/plugable.py b/ipalib/plugable.py
index de63e4ca8..9e612d68d 100644
--- a/ipalib/plugable.py
+++ b/ipalib/plugable.py
@@ -28,10 +28,13 @@ http://docs.python.org/ref/sequence-types.html
import re
import inspect
import threading
+import logging
+import os
+from os import path
import errors
from errors import check_type, check_isinstance
from config import Environment, Env
-import constants
+from constants import LOGGING_FILE_FORMAT, LOGGING_CONSOLE_FORMAT, DEFAULT_CONFIG
import util
@@ -766,18 +769,49 @@ class API(DictProxy):
def bootstrap(self, **overrides):
"""
- Initialize environment variables needed by built-in plugins.
+ Initialize environment variables and logging.
"""
self.__doing('bootstrap')
self.env._bootstrap(**overrides)
- self.env._finalize_core(**dict(constants.DEFAULT_CONFIG))
+ self.env._finalize_core(**dict(DEFAULT_CONFIG))
+ log = logging.getLogger('ipa')
+ object.__setattr__(self, 'log', log)
+ if self.env.debug:
+ log.setLevel(logging.DEBUG)
+ else:
+ log.setLevel(logging.INFO)
+
+ # Add stderr handler:
+ stderr = logging.StreamHandler()
+ stderr.setFormatter(logging.Formatter(LOGGING_CONSOLE_FORMAT))
+ if self.env.debug:
+ level = logging.DEBUG
+ elif self.env.verbose:
+ level = logging.INFO
+ else:
+ level = logging.WARNING
+ stderr.setLevel(level)
+ log.addHandler(stderr)
+
+ # Add file handler:
if self.env.mode == 'unit_test':
- return
- logger = util.configure_logging(
- self.env.log,
- self.env.verbose,
- )
- object.__setattr__(self, 'log', logger)
+ return # But not if in unit-test mode
+ log_dir = path.dirname(self.env.log)
+ if not path.isdir(log_dir):
+ try:
+ os.makedirs(log_dir)
+ except OSError:
+ log.warn('Could not create log_dir %r', log_dir)
+ return
+ handler = logging.FileHandler(self.env.log)
+ handler.setFormatter(logging.Formatter(LOGGING_FILE_FORMAT))
+ if self.env.debug:
+ level = logging.DEBUG
+ else:
+ level = logging.INFO
+ handler.setLevel(level)
+ log.addHandler(handler)
+
def load_plugins(self):
"""