add server log

This commit is contained in:
wangjiacai 2023-04-17 23:28:00 +08:00
parent b7ba1cf4c1
commit ca99215ac7
2 changed files with 35 additions and 1 deletions

View File

@ -10,6 +10,10 @@ app:
SQLALCHEMY_DATABASE_URI: sqlite:///sqlite.db SQLALCHEMY_DATABASE_URI: sqlite:///sqlite.db
# SQLALCHEMY_DATABASE_URI: mysql://username:password@server/db # SQLALCHEMY_DATABASE_URI: mysql://username:password@server/db
# LOGGING_LEVEL: CRITICAL | FATAL | ERROR | WARN | WARNING | INFO | DEBUG | NOTSET
LOGGING_LEVEL: INFO
network: network:
PROXY: http://127.0.0.1:7890 PROXY: http://127.0.0.1:7890

View File

@ -1,7 +1,10 @@
from flask import Flask from flask import Flask, request
from flask_sqlalchemy import SQLAlchemy from flask_sqlalchemy import SQLAlchemy
from flask_login import LoginManager from flask_login import LoginManager
import yaml import yaml
import logging
import time
import traceback
# init SQLAlchemy so we can use it later in our models # init SQLAlchemy so we can use it later in our models
db = SQLAlchemy() db = SQLAlchemy()
@ -19,6 +22,7 @@ def create_app():
app.config['OPENAI_API_KEY'] = conf['openai']['API_KEY'] app.config['OPENAI_API_KEY'] = conf['openai']['API_KEY']
app.config['OPENAI_MODEL_NAME'] = conf['openai']['MODEL_NAME'] app.config['OPENAI_MODEL_NAME'] = conf['openai']['MODEL_NAME']
app.config['OPENAI_PROMPT'] = conf['openai']['PROMPT'] app.config['OPENAI_PROMPT'] = conf['openai']['PROMPT']
app.config['LOGGING_LEVEL'] = conf['app']['LOGGING_LEVEL']
db.init_app(app) db.init_app(app)
login_manager = LoginManager() login_manager = LoginManager()
@ -48,3 +52,29 @@ def create_app():
app = create_app() app = create_app()
logger = logging.getLogger('waitress')
logger.setLevel(app.config['LOGGING_LEVEL'])
@app.before_request
def before_request():
timestamp = time.strftime('[%Y-%b-%d %H:%M]')
logger.info('%s > %s %s %s %s', timestamp, request.remote_addr,
request.method, request.scheme, request.full_path)
@app.after_request
def after_request(response):
timestamp = time.strftime('[%Y-%b-%d %H:%M]')
logger.info('%s < %s %s %s %s %s', timestamp, request.remote_addr,
request.method, request.scheme, request.full_path, response.status)
return response
@app.errorhandler(Exception)
def exceptions(e):
tb = traceback.format_exc()
timestamp = time.strftime('[%Y-%b-%d %H:%M]')
logger.error('%s %s %s %s %s 5xx INTERNAL SERVER ERROR\n%s', timestamp,
request.remote_addr, request.method, request.scheme, request.full_path, tb)
return e.status_code