Browse Source

增加了日志模块,和环境变量

master
wxz 2 years ago
parent
commit
3bb3186e55
  1. 1
      docker-compose.yml
  2. 20
      log_conf.py
  3. 21
      main.py
  4. 5
      test.py

1
docker-compose.yml

@ -10,6 +10,7 @@ services:
RUN_INSTRUCT: "python /main.py runserver 0.0.0.0:7998" RUN_INSTRUCT: "python /main.py runserver 0.0.0.0:7998"
JWHT_GIT_PROJECT_DIR: "/epmet-saas" JWHT_GIT_PROJECT_DIR: "/epmet-saas"
JWHT_LAST_DEPLOY_COMMIT_RECORD: "/lastcommit.txt" JWHT_LAST_DEPLOY_COMMIT_RECORD: "/lastcommit.txt"
JWHT_LOG_DIR: "/log"
restart: "unless-stopped" restart: "unless-stopped"
logging: logging:
driver: local driver: local

20
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()

21
main.py

@ -7,6 +7,7 @@ import os
import re import re
import requests import requests
from flask import Flask from flask import Flask
from log_conf import logger
app = Flask(__name__) app = Flask(__name__)
@ -117,7 +118,7 @@ def deploy_svcs(svc_list):
rst = requests.post( rst = requests.post(
"http://192.168.1.140:9610/jenkins/generic-webhook-trigger/invoke?MODULE_NAME={}&OPERATION=Deploy&token=11a600e78ec001d7864a73f7cf1555ae1a".format( "http://192.168.1.140:9610/jenkins/generic-webhook-trigger/invoke?MODULE_NAME={}&OPERATION=Deploy&token=11a600e78ec001d7864a73f7cf1555ae1a".format(
svc)) svc))
print(rst.content.decode('utf-8')) logger.info("发布{}返回结果:{}".format(svc, rst.content.decode('utf-8')))
def do(): def do():
@ -137,7 +138,7 @@ def do():
last_commits = findLatestCommits(commits, last_commit_ver, max_commit_qty) last_commits = findLatestCommits(commits, last_commit_ver, max_commit_qty)
if not last_commits or len(last_commits) == 0: if not last_commits or len(last_commits) == 0:
print("没有找到可发布的提交") logger.info("没有找到可发布的提交")
return return
# 找到这些commits下提交的文件对应的微服务 # 找到这些commits下提交的文件对应的微服务
@ -147,7 +148,7 @@ def do():
write_last_commit_ver(last_commits[0]) write_last_commit_ver(last_commits[0])
# 执行jenkins远程部署 # 执行jenkins远程部署
print("要发布的服务:", svc_set) logger.log("本次要发布的服务:", svc_set)
deploy_svcs(svc_set) deploy_svcs(svc_set)
@ -155,15 +156,13 @@ def do():
stream.close() stream.close()
if __name__ == '__main__': # if __name__ == '__main__':
do()
# @app.route(rule='/on-dev-push', methods=['GET'])
# def on_dev_push():
# do() # 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) # 多线程模式

5
test.py

@ -1,4 +1,5 @@
import re, os import re, os
from log_conf import logger
# 项目绝对路径 # 项目绝对路径
git_project_env = os.environ.get('JWHT_GIT_PROJECT_DIR') 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') 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" commit_record_file_path = last_deploy_commit_record if last_deploy_commit_record else "./lastcommit.txt"
print(git_project_dir) logger.error(git_project_dir)
print(commit_record_file_path) logger.info(commit_record_file_path)

Loading…
Cancel
Save