From 3bb3186e55037323620741b8f9f4e6192b34b2c9 Mon Sep 17 00:00:00 2001 From: wxz Date: Fri, 15 Sep 2023 11:32:12 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E4=BA=86=E6=97=A5=E5=BF=97?= =?UTF-8?q?=E6=A8=A1=E5=9D=97=EF=BC=8C=E5=92=8C=E7=8E=AF=E5=A2=83=E5=8F=98?= =?UTF-8?q?=E9=87=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docker-compose.yml | 1 + log_conf.py | 20 ++++++++++++++++++++ main.py | 21 ++++++++++----------- test.py | 5 +++-- 4 files changed, 34 insertions(+), 13 deletions(-) create mode 100644 log_conf.py diff --git a/docker-compose.yml b/docker-compose.yml index 4840f94..d666dc3 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -10,6 +10,7 @@ services: RUN_INSTRUCT: "python /main.py runserver 0.0.0.0:7998" JWHT_GIT_PROJECT_DIR: "/epmet-saas" JWHT_LAST_DEPLOY_COMMIT_RECORD: "/lastcommit.txt" + JWHT_LOG_DIR: "/log" restart: "unless-stopped" logging: driver: local diff --git a/log_conf.py b/log_conf.py new file mode 100644 index 0000000..72e8299 --- /dev/null +++ b/log_conf.py @@ -0,0 +1,20 @@ +# -*- coding:utf-8 -*- +import logging, os +import datetime + +log_dir_env = os.environ.get('JWHT_LOG_DIR') +log_dir = log_dir_env if log_dir_env else "./log" + +if not os.path.exists(log_dir): + os.mkdir(log_dir) + +# filename:设置日志输出文件,以天为单位输出到不一样的日志文件,以避免单个日志文件日志信息过多, +# 日志文件若是不存在则会自动建立,但前面的路径如log文件夹必须存在,不然会报错 +log_file = 'log/sys_%s.log' % datetime.datetime.strftime(datetime.datetime.now(), '%Y-%m-%d') +# level:设置日志输出的最低级别,即低于此级别的日志都不会输出 +# 在平时开发测试的时候能够设置成logging.debug以便定位问题,但正式上线后建议设置为logging.WARNING,既能够下降系统I/O的负荷,也能够避免输出过多的无用日志信息 +# format:设置日志的字符串输出格式 +log_format = '%(asctime)s[%(levelname)s]: %(message)s' +logging.basicConfig(filename=log_file, level=logging.INFO, format=log_format) + +logger = logging.getLogger() diff --git a/main.py b/main.py index fdd1263..0077e78 100644 --- a/main.py +++ b/main.py @@ -7,6 +7,7 @@ import os import re import requests from flask import Flask +from log_conf import logger app = Flask(__name__) @@ -117,7 +118,7 @@ def deploy_svcs(svc_list): rst = requests.post( "http://192.168.1.140:9610/jenkins/generic-webhook-trigger/invoke?MODULE_NAME={}&OPERATION=Deploy&token=11a600e78ec001d7864a73f7cf1555ae1a".format( svc)) - print(rst.content.decode('utf-8')) + logger.info("发布{}返回结果:{}".format(svc, rst.content.decode('utf-8'))) def do(): @@ -137,7 +138,7 @@ def do(): last_commits = findLatestCommits(commits, last_commit_ver, max_commit_qty) if not last_commits or len(last_commits) == 0: - print("没有找到可发布的提交") + logger.info("没有找到可发布的提交") return # 找到这些commits下提交的文件对应的微服务 @@ -147,7 +148,7 @@ def do(): write_last_commit_ver(last_commits[0]) # 执行jenkins远程部署 - print("要发布的服务:", svc_set) + logger.log("本次要发布的服务:", svc_set) deploy_svcs(svc_set) @@ -155,15 +156,13 @@ def do(): stream.close() -if __name__ == '__main__': - do() - -# @app.route(rule='/on-dev-push', methods=['GET']) -# def on_dev_push(): +# if __name__ == '__main__': # do() -# return "success" +@app.route(rule='/on-dev-push', methods=['GET']) +def on_dev_push(): + do() + return "success" -# app.run(host="0.0.0.0", port=7998, debug=True) # 多线程模式 -# python main.py runserver 0.0.0.0:7999 +app.run(host="0.0.0.0", port=7998, debug=False) # 多线程模式 diff --git a/test.py b/test.py index 3e8f908..df6e609 100644 --- a/test.py +++ b/test.py @@ -1,4 +1,5 @@ import re, os +from log_conf import logger # 项目绝对路径 git_project_env = os.environ.get('JWHT_GIT_PROJECT_DIR') @@ -8,5 +9,5 @@ git_project_dir = git_project_env if git_project_env else "epmet-saas" last_deploy_commit_record = os.environ.get('JWHT_LAST_DEPLOY_COMMIT_RECORD') commit_record_file_path = last_deploy_commit_record if last_deploy_commit_record else "./lastcommit.txt" -print(git_project_dir) -print(commit_record_file_path) \ No newline at end of file +logger.error(git_project_dir) +logger.info(commit_record_file_path)