1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- from flask import Flask, jsonify, request
- from flask_restful import reqparse, abort, Api, Resource
- from kinesis.producer import KinesisProducer
- import json
- import boto3
- import logging
- import logging.handlers
- import os
- import time
- import datetime
- #filename = './logs/log'
- '''
- timeFileHandler = logging.handlers.TimedRotatingFileHandler(
- filename=filename,
- when='midnight',
- interval=1,
- backupCount=7
- )
- timeFileHandler.setFormatter(formatter)
- timeFileHandler.suffix = "%Y-%m-%d"
- logger.addHandler(timeFileHandler)
- '''
- class LogWallpad(Resource):
- def post(self):
- session = boto3.Session(
- aws_access_key_id=os.environ['ID'],
- aws_secret_access_key=os.environ['KEY'],
- region_name='ap-northeast-2')
- producer = KinesisProducer(stream_name=os.environ['STREAM'],boto3_session=session)
- logger = logging.getLogger(__name__)
- filename = './logs/{:%Y-%m-%d}.log'.format(datetime.datetime.now())
- formatter = logging.Formatter('[%(asctime)s] %(message)s', '%Y-%m-%d %H:%M:%S')
- fileHandler = logging.FileHandler(filename)
- fileHandler.setFormatter(formatter)
- logger.addHandler(fileHandler)
- logger.setLevel(level=logging.INFO)
- request.json['site']=os.environ['SITE']
- logger.info(json.dumps(request.json))
- producer.put(json.dumps(request.json)+'\n')
- return request.json, 201
- os.environ['TZ'] = 'Asia/Seoul'
- time.tzset()
- server = Flask(__name__)
- api = Api(server)
- api.add_resource(LogWallpad, '/wallpad/log')
|