diff --git a/bin/deltalogparse.py b/bin/deltalogparse.py index 5f4e6788ff1c32d58bf05642a0db73fa2ea4e39f..d177d9736ca25263079b636760f77a78e8ee4ab5 100755 --- a/bin/deltalogparse.py +++ b/bin/deltalogparse.py @@ -18,12 +18,23 @@ log_path = '/var/log/ldap/delta.log' search_base = 'cn=deltalog' object_classes = '(|(objectClass=auditModify)(objectClass=auditAdd)(objectClass=auditDelete))' -logging.basicConfig( - filename='/var/log/ldap/deltalogparse.log', - level=loglevel, - format='%(asctime)s ' + process_name + '[%(process)d]:%(levelname)s: %(message)s', +#logging.basicConfig( +# filename='/var/log/ldap/deltalogparse.log', +# level=loglevel, +# format='%(asctime)s ' + process_name + '[%(process)d]:%(levelname)s: %(message)s', +# datefmt='%Y-%m-%d %H:%M:%S' +#) + +log = logging.getLogger('deltalogparse') +log.setLevel(loglevel) +log_fh = logging.FileHandler('/var/log/ldap/deltalogparse.log') +log_fh.setLevel(loglevel) +log_formatter = logging.Formatter( + fmt='%(asctime)s ' + process_name + '[%(process)d]:%(levelname)s: %(message)s', datefmt='%Y-%m-%d %H:%M:%S' ) +log_fh.setFormatter(log_formatter) +log.addHandler(log_fh) rgx_skip = re.compile( r'^(' @@ -53,7 +64,7 @@ def is_skipped(attributes): return True -def log(entry): +def deltalog(entry): req_type = entry['attributes']['reqType'][0] req_dn = entry['attributes']['reqDN'][0] @@ -61,8 +72,8 @@ def log(entry): entry['attributes'] = attributes del entry['raw_attributes'] - logging.debug(pprint.pformat(entry, indent=4)) - logging.info('log: %s %s' % (req_type, req_dn)) + log.debug(pprint.pformat(entry, indent=4)) + log.info('log: %s %s' % (req_type, req_dn)) def sleep(start_time): @@ -70,7 +81,7 @@ def sleep(start_time): elapsed_time = current_time - start_time sleep_time = update_every - elapsed_time - logging.info('runtime %0.3fs, sleeping %0.3fs' % (elapsed_time, sleep_time)) + log.info('runtime %0.3fs, sleeping %0.3fs' % (elapsed_time, sleep_time)) if sleep_time > 0: time.sleep(sleep_time) @@ -90,9 +101,9 @@ def main(): try: response = slapd.search(search_base, search_filter) except: - logging.error('socket error!') + log.error('socket error!') if slapd.reconnect(): - logging.error('socket reconnected.') + log.error('socket reconnected.') if response: for entry in slapd.response(): @@ -103,15 +114,15 @@ def main(): req_type = entry['attributes']['reqType'][0] req_dn = entry['attributes']['reqDN'][0] - logging.info(' '.join(['processing:', req_start, entry['dn']])) + log.info(' '.join(['processing:', req_start, entry['dn']])) if req_type == 'modify': req_mods = entry['attributes']['reqMod'] if is_skipped(req_mods): - logging.info('skip: %s %s' % (req_type, req_dn)) + log.info('skip: %s %s' % (req_type, req_dn)) continue - log(entry) + deltalog(entry) sleep(start_time)