Ver código fonte

로그 출력 관련 내용 수정함

heewon 2 anos atrás
pai
commit
38733cfa81

+ 4 - 4
docker-compose.override.yml

@@ -6,17 +6,17 @@ services:
                 restart: always
                 build: ./flask_app
                 ports:
-                        - "9001:9001"                          
-                command: gunicorn -w ${WORKER_COUNTS} -b 0.0.0.0:9001 wsgi:server
+                        - "10010:10010"                          
+                command: gunicorn -w ${WORKER_COUNTS} -b 0.0.0.0:10010 wsgi:server
                 volumes:
                         - ~:/usr/src/flask_app/logs
                 environment:
                         - SITE=buildpc
                         - STREAM=ambt-preden-test
-                        - HOST=0.0.0.0
+                        - HOST=127.0.0.1
+                        - PORT=10010
                         - ID=AKIAUSTWEOGGEJICFGIP
                         - KEY=Psz2Ao8Dp2rv0brrlIh4fiuDhJbCGqOMD4090tSo
-                        - FORMATTER_VER=2
 
         nginx:
                 container_name: nginx

+ 1 - 1
docker-compose.yml

@@ -2,7 +2,7 @@ version: "3"
 
 services:
         flask_app:
-                image: ive2go/app:1.0.0
+                image: ive2go/app:1.0.1
         nginx:
                 image: ive2go/nginx:1.15.8
                 depends_on:

BIN
flask_app/__pycache__/app.cpython-38.pyc


+ 29 - 15
flask_app/app.py

@@ -7,27 +7,41 @@ import logging
 import logging.handlers
 import os
 import time
+import datetime
 
-server = Flask(__name__)
-api = Api(server)
-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__)
-os.environ['TZ'] = 'Asia/Seoul'
-time.tzset()
-formatter = logging.Formatter('%(message)s') if os.environ['FORMATTER_VER']==1 else logging.Formatter('[%(asctime)s] %(message)s', "%Y-%m-%d %H:%M:%S")
-fileHandler = logging.FileHandler('./logs/log')
-fileHandler.setFormatter(formatter)
-logger.addHandler(fileHandler)
-logger.setLevel(level=logging.INFO)
+#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')

+ 3 - 1
flask_app/requirements.txt

@@ -1,4 +1,6 @@
-gunicorn
+gevent==21.8.0
+greenlet==1.1.2
+gunicorn==20.1.0
 aniso8601==9.0.1
 boto3==1.17.88
 botocore==1.20.88

+ 1 - 1
flask_app/wsgi.py

@@ -2,4 +2,4 @@ from app import server
 import os
 
 if __name__ == "__main__":
-        server.run(host=os.environ['HOST'], port=9001)
+        server.run(host=os.environ['HOST'], port=os.environ['PORT'])

+ 2 - 2
nginx/nginx.conf

@@ -2,7 +2,7 @@
 user  nginx;
 # Define the number of worker processes; recommended value is the number of
 # cores that are being used by your server
-worker_processes  1;
+worker_processes  auto;
 # Define the location on the file system of the error log, plus the minimum
 # severity to log messages for
 error_log  /var/log/nginx/error.log warn;
@@ -12,7 +12,7 @@ pid        /var/run/nginx.pid;
 # events block defines the parameters that affect connection processing.
 events {
     # Define the maximum number of simultaneous connections that can be opened by a worker proce$
-    worker_connections  1024;
+    worker_connections  8192;
 }
 
 # http block defines the parameters for how NGINX should handle HTTP web traffic

+ 4 - 2
run_docker.sh

@@ -1,5 +1,7 @@
-echo killing old docker processes
-docker-compose rm -fs
+#echo killing old docker processes
+#docker-compose rm -fs
+echo kill and remove old docker container and images
+docker-compose down --rmi all
 
 echo make docker env
 WORKER_COUNTS=`expr $(grep "cpu cores" /proc/cpuinfo | tail -1 | cut -d" " -f3) \* 2 + 1`