业务需求给每个 api 上了一个 log 装饰器记录日志,写入到 flask_log/app.log ,代码如下:
log_path = os.path.join(os.path.dirname(os.getcwd()), "flask_log") #没有 flask_log 文件就生成一个
if not os.path.exists(log_path):
os.mkdir(log_path)
logging.basicConfig(level=logging.INFO)
#写入到 app.log 文件
handler = logging.handlers.RotatingFileHandler(os.path.join(log_path, "app.log"),
'a', maxBytes=1024 * 1024 * 200, backupCount=max_log_count,
encoding="UTF-8")
# 定制日志格式
logging_format = logging.Formatter('pid:%(process)d - %(asctime)s - %(levelname)s '
'- %(filename)s:%(funcName)s[line:%(lineno)d] - %(message)s')
handler.setFormatter(logging_format)
# api 装饰器
def log(func):
@functools.wraps(func)
def wrapper(*args, **kwargs):
try:
response = func(*args, **kwargs)
except Exception as e:
current_app.logger.error(make_log_message(request, str(e)))
return "Sorry, some error happened. Info:\n{}".format(e), 500
current_app.logger.info(make_log_message(request, response)
return response
return wrapper
docker 挂载代码如下:
volumes:
- /var/log/flask_log:/src/flask_log:rw # docker 里面的 WORKDIR 为 /src
1
Tracy1997 OP 有没有大佬看看是挂载出了问题吗?还是 docker 哪里有问题
|
2
fyfy560 2019-08-07 09:21:16 +08:00
可以检查一下
/var/lib/docker/containers/<CONTAINER ID>/<CONTAINER ID>-json.log |
4
Tracy1997 OP 救救孩子把
|
5
wenqiang1208 2019-08-07 15:41:37 +08:00
会不会是覆盖掉了
|
6
Tracy1997 OP @wenqiang1208 应该不是 我进到 docker 容器内看 日志是正常记录的 就是没有同步映射到宿主机
|