def get_audit_logger(): from desktop.conf import AUDIT_EVENT_LOG_DIR, AUDIT_LOG_MAX_FILE_SIZE audit_logger = logging.getLogger('audit') if not [hclass for hclass in audit_logger.handlers if isinstance(hclass, AuditHandler)]: # Don't add handler twice size, unit = int(AUDIT_LOG_MAX_FILE_SIZE.get()[:-2]), AUDIT_LOG_MAX_FILE_SIZE.get()[-2:] maxBytes = size * 1024 ** (1 if unit == 'KB' else 2 if unit == 'MB' else 3) audit_handler = AuditHandler(AUDIT_EVENT_LOG_DIR.get(), maxBytes=maxBytes, backupCount=50) audit_handler.setFormatter(MessageOnlyFormatter()) audit_logger.addHandler(audit_handler) return audit_logger
def get_audit_logger(): from desktop.conf import AUDIT_EVENT_LOG_DIR, AUDIT_LOG_MAX_FILE_SIZE audit_logger = logging.getLogger('audit') if not filter(lambda hclass: isinstance(hclass, AuditHandler), audit_logger.handlers): # Don't add handler twice size, unit = int(AUDIT_LOG_MAX_FILE_SIZE.get()[:-2]), AUDIT_LOG_MAX_FILE_SIZE.get()[-2:] maxBytes = size * 1024 ** (1 if unit == 'KB' else 2 if unit == 'MB' else 3) audit_handler = AuditHandler(AUDIT_EVENT_LOG_DIR.get(), maxBytes=maxBytes, backupCount=50) audit_handler.setFormatter(MessageOnlyFormatter()) audit_logger.addHandler(audit_handler) return audit_logger
def test_one_audit(): log_tmp = tempfile.NamedTemporaryFile("w+t") # KB reset = [ AUDIT_EVENT_LOG_DIR.set_for_testing(log_tmp), AUDIT_LOG_MAX_FILE_SIZE.set_for_testing('25KB') ] audit_logger = get_audit_logger() audit_handler = audit_logger.handlers[0] assert_equal(25 * 1024 ** 1, audit_handler.maxBytes) assert_equal(len(audit_logger.handlers), 1, audit_logger.handlers) assert_true(isinstance(audit_handler, AuditHandler), audit_logger.handlers) audit_logger = get_audit_logger() assert_equal(len(audit_logger.handlers), 1, audit_logger.handlers) # Not adding handler twice # Cleanup audit_logger.removeHandler(audit_handler) for r in reset: r() # MB reset = [ AUDIT_EVENT_LOG_DIR.set_for_testing(log_tmp), AUDIT_LOG_MAX_FILE_SIZE.set_for_testing('25MB') ] audit_logger = get_audit_logger() audit_handler = audit_logger.handlers[0] assert_equal(25 * 1024 ** 2, audit_handler.maxBytes) assert_equal(len(audit_logger.handlers), 1, audit_logger.handlers) assert_true(isinstance(audit_handler, AuditHandler), audit_logger.handlers) audit_logger = get_audit_logger() assert_equal(len(audit_logger.handlers), 1, audit_logger.handlers) # Not adding handler twice # Cleanup audit_logger.removeHandler(audit_handler) for r in reset: r() # GB reset = [ AUDIT_EVENT_LOG_DIR.set_for_testing(log_tmp), AUDIT_LOG_MAX_FILE_SIZE.set_for_testing('25GB') ] audit_logger = get_audit_logger() audit_handler = audit_logger.handlers[0] assert_equal(25 * 1024 ** 3, audit_handler.maxBytes) assert_equal(len(audit_logger.handlers), 1, audit_logger.handlers) assert_true(isinstance(audit_handler, AuditHandler), audit_logger.handlers) audit_logger = get_audit_logger() assert_equal(len(audit_logger.handlers), 1, audit_logger.handlers) # Not adding handler twice # Cleanup audit_logger.removeHandler(audit_handler) for r in reset: r()
def test_one_audit(): with tempfile.NamedTemporaryFile("w+t") as log_tmp: # KB reset = [ AUDIT_EVENT_LOG_DIR.set_for_testing(log_tmp.name), AUDIT_LOG_MAX_FILE_SIZE.set_for_testing('25KB') ] audit_logger = get_audit_logger() audit_handler = audit_logger.handlers[0] assert_equal(25 * 1024 ** 1, audit_handler.maxBytes) assert_equal(len(audit_logger.handlers), 1, audit_logger.handlers) assert_true(isinstance(audit_handler, AuditHandler), audit_logger.handlers) audit_logger = get_audit_logger() assert_equal(len(audit_logger.handlers), 1, audit_logger.handlers) # Not adding handler twice # Cleanup audit_logger.removeHandler(audit_handler) for r in reset: r() # MB reset = [ AUDIT_EVENT_LOG_DIR.set_for_testing(log_tmp.name), AUDIT_LOG_MAX_FILE_SIZE.set_for_testing('25MB') ] audit_logger = get_audit_logger() audit_handler = audit_logger.handlers[0] assert_equal(25 * 1024 ** 2, audit_handler.maxBytes) assert_equal(len(audit_logger.handlers), 1, audit_logger.handlers) assert_true(isinstance(audit_handler, AuditHandler), audit_logger.handlers) audit_logger = get_audit_logger() assert_equal(len(audit_logger.handlers), 1, audit_logger.handlers) # Not adding handler twice # Cleanup audit_logger.removeHandler(audit_handler) for r in reset: r() # GB reset = [ AUDIT_EVENT_LOG_DIR.set_for_testing(log_tmp.name), AUDIT_LOG_MAX_FILE_SIZE.set_for_testing('25GB') ] audit_logger = get_audit_logger() audit_handler = audit_logger.handlers[0] assert_equal(25 * 1024 ** 3, audit_handler.maxBytes) assert_equal(len(audit_logger.handlers), 1, audit_logger.handlers) assert_true(isinstance(audit_handler, AuditHandler), audit_logger.handlers) audit_logger = get_audit_logger() assert_equal(len(audit_logger.handlers), 1, audit_logger.handlers) # Not adding handler twice # Cleanup audit_logger.removeHandler(audit_handler) for r in reset: r()