• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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