Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class AuditLogger():
- deleted = False
- def __init__(self):
- self.objects = {}
- self.humanreadable = None
- self.set('ip', request.remote_addr)
- self.set('endpoint', request.endpoint)
- self.set('endpoint_args', request.view_args)
- self.set('timestamp', time.time())
- def set(self, key, value):
- self.objects.update({key: value})
- def submit(self, status='success', level='info'):
- if self.deleted == False:
- self.set('status', status)
- self.set('level', level)
- json_self = json.dumps(self.objects, default=lambda o: o.__dict__, sort_keys=True)
- logmessage = []
- logmessage.append('Request from %s' % request.remote_addr)
- logmessage.append('Endpoint %s' % request.endpoint)
- logmessage.append('Arguments %s' % request.view_args)
- if current_user.is_authenticated:
- logmessage.append('User %s (%d)' % (current_user.email, current_user.id))
- if self.humanreadable is not None:
- logmessage.append(message)
- app.logger.info(': '.join(logmessage))
- try:
- es_connection.index(index='auditlog', body=json_self)
- except:
- app.logger.warning('Could not index to Elasticsearch!')
- self.deleted = True
- del self
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement