Advertisement
Guest User

Untitled

a guest
Apr 26th, 2019
108
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.38 KB | None | 0 0
  1. class AuditLogger():
  2.     deleted = False
  3.     def __init__(self):
  4.         self.objects = {}
  5.         self.humanreadable = None
  6.         self.set('ip', request.remote_addr)
  7.         self.set('endpoint', request.endpoint)
  8.         self.set('endpoint_args', request.view_args)
  9.         self.set('timestamp', time.time())
  10.  
  11.     def set(self, key, value):
  12.         self.objects.update({key: value})
  13.  
  14.     def submit(self, status='success', level='info'):
  15.         if self.deleted == False:
  16.             self.set('status', status)
  17.             self.set('level', level)
  18.             json_self = json.dumps(self.objects, default=lambda o: o.__dict__, sort_keys=True)
  19.             logmessage = []
  20.             logmessage.append('Request from %s' % request.remote_addr)
  21.             logmessage.append('Endpoint %s' % request.endpoint)
  22.             logmessage.append('Arguments %s' % request.view_args)
  23.             if current_user.is_authenticated:
  24.                 logmessage.append('User %s (%d)' % (current_user.email, current_user.id))
  25.             if self.humanreadable is not None:
  26.                 logmessage.append(message)
  27.             app.logger.info(': '.join(logmessage))
  28.             try:
  29.                 es_connection.index(index='auditlog', body=json_self)
  30.             except:
  31.                 app.logger.warning('Could not index to Elasticsearch!')
  32.             self.deleted = True
  33.             del self
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement