
业务需求给每个 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 容器内看 日志是正常记录的 就是没有同步映射到宿主机 |