summaryrefslogtreecommitdiffstats
path: root/src/lib
diff options
context:
space:
mode:
authorChris St. Pierre <chris.a.st.pierre@gmail.com>2012-08-15 11:20:18 -0400
committerChris St. Pierre <chris.a.st.pierre@gmail.com>2012-08-15 11:20:18 -0400
commitf2f5e9c8a8be6970c2683045ef9993ba60a0d63b (patch)
treecc4a3df003710ed839f35f24b2810fbbdfd03eff /src/lib
parentd1073cc867ffc96952de4dddc5fb30d51fd5bf4e (diff)
downloadbcfg2-f2f5e9c8a8be6970c2683045ef9993ba60a0d63b.tar.gz
bcfg2-f2f5e9c8a8be6970c2683045ef9993ba60a0d63b.tar.bz2
bcfg2-f2f5e9c8a8be6970c2683045ef9993ba60a0d63b.zip
made logging to syslog configurable and default for all logging
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/Bcfg2/Client/Frame.py15
-rw-r--r--src/lib/Bcfg2/Client/Tools/APK.py4
-rw-r--r--src/lib/Bcfg2/Client/Tools/Action.py2
-rw-r--r--src/lib/Bcfg2/Client/Tools/__init__.py8
-rw-r--r--src/lib/Bcfg2/Logger.py32
-rw-r--r--src/lib/Bcfg2/Options.py8
-rw-r--r--src/lib/Bcfg2/Server/Admin/Query.py3
-rw-r--r--src/lib/Bcfg2/Server/Core.py2
8 files changed, 37 insertions, 37 deletions
diff --git a/src/lib/Bcfg2/Client/Frame.py b/src/lib/Bcfg2/Client/Frame.py
index bfdc90d38..a050464e2 100644
--- a/src/lib/Bcfg2/Client/Frame.py
+++ b/src/lib/Bcfg2/Client/Frame.py
@@ -133,7 +133,6 @@ class Frame:
for entry in problems:
self.logger.error("%s:%s:%s" % (entry.tag, entry.get('type'),
entry.get('name')))
- self.logger.error("")
self.find_dups(config)
@@ -163,7 +162,6 @@ class Frame:
self.logger.debug("The following entries are included multiple times:")
for entry in multi:
self.logger.debug(entry)
- self.logger.debug("")
def __getattr__(self, name):
if name in ['extra', 'handled', 'modified', '__important__']:
@@ -371,7 +369,6 @@ class Frame:
if mbundles:
self.logger.info("The Following Bundles have been modified:")
self.logger.info([mbun.get('name') for mbun in mbundles])
- self.logger.info("")
tbm = [(t, b) for t in self.tools for b in mbundles]
for tool, bundle in tbm:
try:
@@ -414,10 +411,10 @@ class Frame:
def CondDisplayState(self, phase):
"""Conditionally print tracing information."""
- self.logger.info('\nPhase: %s' % phase)
- self.logger.info('Correct entries:\t%d' %
+ self.logger.info('Phase: %s' % phase)
+ self.logger.info('Correct entries: %d' %
list(self.states.values()).count(True))
- self.logger.info('Incorrect entries:\t%d' %
+ self.logger.info('Incorrect entries: %d' %
list(self.states.values()).count(False))
if phase == 'final' and list(self.states.values()).count(False):
for entry in self.states.keys():
@@ -429,9 +426,9 @@ class Frame:
else:
self.logger.info(" %s:%s" % (entry.tag,
entry.get('name')))
- self.logger.info('Total managed entries:\t%d' %
+ self.logger.info('Total managed entries: %d' %
len(list(self.states.values())))
- self.logger.info('Unmanaged entries:\t%d' % len(self.extra))
+ self.logger.info('Unmanaged entries: %d' % len(self.extra))
if phase == 'final' and self.setup['extra']:
for entry in self.extra:
etype = entry.get('type')
@@ -442,8 +439,6 @@ class Frame:
self.logger.info(" %s:%s" % (entry.tag,
entry.get('name')))
- self.logger.info("")
-
if ((list(self.states.values()).count(False) == 0) and not self.extra):
self.logger.info('All entries correct.')
diff --git a/src/lib/Bcfg2/Client/Tools/APK.py b/src/lib/Bcfg2/Client/Tools/APK.py
index aaaf2472f..d70916792 100644
--- a/src/lib/Bcfg2/Client/Tools/APK.py
+++ b/src/lib/Bcfg2/Client/Tools/APK.py
@@ -24,8 +24,8 @@ class APK(Bcfg2.Client.Tools.PkgTool):
for pkg in zip(names, nameversions):
pkgname = pkg[0]
version = pkg[1][len(pkgname) + 1:]
- self.logger.debug(" pkgname: %s\n version: %s" %
- (pkgname, version))
+ self.logger.debug(" pkgname: %s" % pkgname)
+ self.logger.debug(" version: %s" % version)
self.installed[pkgname] = version
def VerifyPackage(self, entry, modlist):
diff --git a/src/lib/Bcfg2/Client/Tools/Action.py b/src/lib/Bcfg2/Client/Tools/Action.py
index e13134e1f..52d4e6a3f 100644
--- a/src/lib/Bcfg2/Client/Tools/Action.py
+++ b/src/lib/Bcfg2/Client/Tools/Action.py
@@ -61,7 +61,7 @@ class Action(Bcfg2.Client.Tools.Tool):
else:
return rc == 0
else:
- self.logger.debug("In dryrun mode: not running action:\n %s" %
+ self.logger.debug("In dryrun mode: not running action: %s" %
(entry.get('name')))
return False
diff --git a/src/lib/Bcfg2/Client/Tools/__init__.py b/src/lib/Bcfg2/Client/Tools/__init__.py
index 1f191fce3..026c7ade0 100644
--- a/src/lib/Bcfg2/Client/Tools/__init__.py
+++ b/src/lib/Bcfg2/Client/Tools/__init__.py
@@ -209,10 +209,10 @@ class Tool(object):
missing = self.missing_attrs(entry)
if missing:
- self.logger.error("Incomplete information for entry %s:%s; cannot install" \
- % (entry.tag, entry.get('name')))
- self.logger.error("\t... due to absence of %s attribute" % \
- (":".join(missing)))
+ self.logger.error("Incomplete information for entry %s:%s; cannot "
+ "install due to absence of attribute(s): %s" %
+ (entry.tag, entry.get('name'),
+ ", ".join(missing)))
return False
return True
diff --git a/src/lib/Bcfg2/Logger.py b/src/lib/Bcfg2/Logger.py
index 903209ac3..26c1d52f6 100644
--- a/src/lib/Bcfg2/Logger.py
+++ b/src/lib/Bcfg2/Logger.py
@@ -126,20 +126,15 @@ class FragmentingSysLogHandler(logging.handlers.SysLogHandler):
"""
pass
-
-def add_console_handler(level):
+def add_console_handler(level=logging.DEBUG):
"""Add a logging handler that logs at a level to sys.stdout."""
console = logging.StreamHandler(sys.stdout)
- if level is True:
- console.setLevel(logging.DEBUG)
- else:
- console.setLevel(level)
+ console.setLevel(level)
# tell the handler to use this format
console.setFormatter(TermiosFormatter())
logging.root.addHandler(console)
-
-def add_syslog_handler(procname, syslog_facility):
+def add_syslog_handler(procname, syslog_facility, level=logging.DEBUG):
"""Add a logging handler that logs as procname to syslog_facility."""
try:
try:
@@ -150,7 +145,7 @@ def add_syslog_handler(procname, syslog_facility):
syslog = FragmentingSysLogHandler(procname,
('localhost', 514),
syslog_facility)
- syslog.setLevel(logging.DEBUG)
+ syslog.setLevel(level)
syslog.setFormatter(logging.Formatter('%(name)s[%(process)d]: %(message)s'))
logging.root.addHandler(syslog)
except socket.error:
@@ -158,15 +153,13 @@ def add_syslog_handler(procname, syslog_facility):
except:
print("Failed to activate syslogging")
-
-def add_file_handler(to_file):
+def add_file_handler(to_file, level=logging.DEBUG):
"""Add a logging handler that logs to to_file."""
filelog = logging.FileHandler(to_file)
- filelog.setLevel(logging.DEBUG)
+ filelog.setLevel(level)
filelog.setFormatter(logging.Formatter('%(asctime)s %(name)s[%(process)d]: %(message)s'))
logging.root.addHandler(filelog)
-
def setup_logging(procname, to_console=True, to_syslog=True,
syslog_facility='daemon', level=0, to_file=None):
"""Setup logging for Bcfg2 software."""
@@ -174,11 +167,16 @@ def setup_logging(procname, to_console=True, to_syslog=True,
return
if to_console:
- add_console_handler(to_console)
+ if to_console == True:
+ clvl = min(logging.WARNING, level)
+ else:
+ clvl = min(to_console, level)
+ add_console_handler(clvl)
if to_syslog:
- add_syslog_handler(procname, syslog_facility)
+ slvl = min(level, logging.INFO)
+ add_syslog_handler(procname, syslog_facility, level=slvl)
if to_file is not None:
- add_file_handler(to_file)
+ add_file_handler(to_file, level=level)
- logging.root.setLevel(level)
+ logging.root.setLevel(logging.DEBUG)
logging.already_setup = True
diff --git a/src/lib/Bcfg2/Options.py b/src/lib/Bcfg2/Options.py
index 320a219d3..4c6fb06d7 100644
--- a/src/lib/Bcfg2/Options.py
+++ b/src/lib/Bcfg2/Options.py
@@ -805,6 +805,11 @@ LOGGING_FILE_PATH = \
cmd='-o',
odesc='<path>',
cf=('logging', 'path'))
+LOGGING_SYSLOG = \
+ Option('Log to syslog',
+ default=True,
+ cook=get_bool,
+ cf=('logging', 'syslog'))
DEBUG = \
Option("Enable debugging output",
default=False,
@@ -871,7 +876,8 @@ CLI_COMMON_OPTIONS = dict(configfile=CFILE,
help=HELP,
verbose=VERBOSE,
encoding=ENCODING,
- logging=LOGGING_FILE_PATH)
+ logging=LOGGING_FILE_PATH,
+ syslog=LOGGING_SYSLOG)
DAEMON_COMMON_OPTIONS = dict(daemon=DAEMON,
listen_all=SERVER_LISTEN_ALL)
diff --git a/src/lib/Bcfg2/Server/Admin/Query.py b/src/lib/Bcfg2/Server/Admin/Query.py
index 6c4d3c4b6..f81ec41d2 100644
--- a/src/lib/Bcfg2/Server/Admin/Query.py
+++ b/src/lib/Bcfg2/Server/Admin/Query.py
@@ -22,7 +22,8 @@ class Query(Bcfg2.Server.Admin.MetadataCore):
def __init__(self, setup):
Bcfg2.Server.Admin.MetadataCore.__init__(self, setup)
logging.root.setLevel(100)
- Bcfg2.Logger.setup_logging(100, to_console=False, to_syslog=False)
+ Bcfg2.Logger.setup_logging(100, to_console=False,
+ to_syslog=setup['syslog'])
def __call__(self, args):
Bcfg2.Server.Admin.MetadataCore.__call__(self, args)
diff --git a/src/lib/Bcfg2/Server/Core.py b/src/lib/Bcfg2/Server/Core.py
index 660d2c3ef..f25542eae 100644
--- a/src/lib/Bcfg2/Server/Core.py
+++ b/src/lib/Bcfg2/Server/Core.py
@@ -64,7 +64,7 @@ class BaseCore(object):
self.logger.setLevel(level)
Bcfg2.Logger.setup_logging('bcfg2-server',
to_console=True,
- to_syslog=True,
+ to_syslog=setup['syslog'],
to_file=setup['logging'],
level=level)