1#!/usr/bin/env python 2# -*- coding:utf-8 -*- 3# The build entrance of UniProton. 4# Copyright © Huawei Technologies Co., Ltd. 2010-2020. All rights reserved. 5 6import os 7import re 8import sys 9import time 10import logging 11import globle 12 13 14logging.basicConfig(level=logging.NOTSET) 15 16class BuilderNolog(): 17 18 def __init__(self,log_file): 19 self.log_file = log_file 20 self.loglevel = 'INFO' 21 22 def run(self, cmd, cwd=os.getcwd(), env=None): 23 exit_code = os.system('cd %s && %s' % (cwd, cmd)) 24 if exit_code != 0: 25 with open(self.log_file) as file_handle: 26 for line in file_handle.readlines(): 27 logging.info(line) 28 logging.info("\n--[INFO] more message in logfile [%s] env: [%s]" ,self.log_file, env) 29 return exit_code 30 31 def log_format(self): 32 try: 33 sys.path.append(("%s%s") % (globle.home_path, "/../cmake")) 34 import logcode_format 35 formatter = (logcode_format.init_format(os.getcwd().split('/')[-1])) 36 except ImportError: 37 formatter = '%(asctime)s -- %(levelname)s [UniProton] -- : %(message)s' 38 39 logger_root = logging.getLogger() 40 for handler in logger_root.handlers: 41 logger_root.removeHandler(handler) 42 43 with open(self.log_file, 'r') as rd: 44 lines = rd.readlines() 45 os.remove(self.log_file) 46 47 logformat = logging.Formatter(formatter) 48 fh = logging.FileHandler(self.log_file, mode='a', encoding=sys.getdefaultencoding()) 49 fh.setLevel(self.loglevel) 50 fh.setFormatter(logformat) 51 52 logger = logging.getLogger('UniProton') 53 logger.setLevel(self.loglevel) 54 for handler in logger.handlers: 55 logger.removeHandler(handler) 56 logger.addHandler(fh) 57 58 for line in lines: 59 logger.info(line.strip()) 60 return 61 62 63def log_msg(level,msg): 64 logging.info('[%s] %s %s %s', level.upper(),'#'*20,msg,'#'*20) 65