app.py 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. from flask import Flask, jsonify, request
  2. from flask_restful import reqparse, abort, Api, Resource
  3. from kinesis.producer import KinesisProducer
  4. import json
  5. import boto3
  6. import logging
  7. import logging.handlers
  8. import os
  9. import time
  10. import datetime
  11. #filename = './logs/log'
  12. '''
  13. timeFileHandler = logging.handlers.TimedRotatingFileHandler(
  14. filename=filename,
  15. when='midnight',
  16. interval=1,
  17. backupCount=7
  18. )
  19. timeFileHandler.setFormatter(formatter)
  20. timeFileHandler.suffix = "%Y-%m-%d"
  21. logger.addHandler(timeFileHandler)
  22. '''
  23. class LogWallpad(Resource):
  24. def post(self):
  25. session = boto3.Session(
  26. aws_access_key_id=os.environ['ID'],
  27. aws_secret_access_key=os.environ['KEY'],
  28. region_name='ap-northeast-2')
  29. producer = KinesisProducer(stream_name=os.environ['STREAM'],boto3_session=session)
  30. logger = logging.getLogger(__name__)
  31. filename = './logs/{:%Y-%m-%d}.log'.format(datetime.datetime.now())
  32. formatter = logging.Formatter('[%(asctime)s] %(message)s', '%Y-%m-%d %H:%M:%S')
  33. fileHandler = logging.FileHandler(filename)
  34. fileHandler.setFormatter(formatter)
  35. logger.addHandler(fileHandler)
  36. logger.setLevel(level=logging.INFO)
  37. request.json['site']=os.environ['SITE']
  38. logger.info(json.dumps(request.json))
  39. producer.put(json.dumps(request.json)+'\n')
  40. return request.json, 201
  41. os.environ['TZ'] = 'Asia/Seoul'
  42. time.tzset()
  43. server = Flask(__name__)
  44. api = Api(server)
  45. api.add_resource(LogWallpad, '/wallpad/log')