Demo entry 6628931

nnknkjn

   

Submitted by bjhbjhb on Jul 05, 2017 at 21:35
Language: Python 3. Code size: 4.9 kB.

import logging

class dGUI:
    def __init__(self, gui=None, logger=None):
        self.gui = gui
        self.logger = logger
        
    @property
    def _isgui(self):
        result = False
        if not self.gui is None:
            if 'update' in self.gui.__dir__():
                self._isguis = True
                result = True
        return result
    
    def update(self, focus=False):
        if self._isgui:
            self.gui.update()
            if focus:
                self.gui.focus_force()
                
    def lbvalue(self, s=''):
        if self._isgui:
            self.gui.lbvalue.set(s)
            self.update(focus=True)
            self._update_logger(s)

    def _update_logger(self, s):
        if not logger is None:
            try:
                logger.info(s)
            except:
                pass
            
    def lbvalue2(self, s='', focus=False):
        if self._isgui:
            self.gui.lbvalue2.set(s)
            self.update(focus)
            
            
class Logger:
    """
    # Сообщение отладочное
    logging.debug( u'This is a debug message' )
    # Сообщение информационное
    logging.info( u'This is an info message' )
    # Сообщение предупреждение
    logging.warning( u'This is a warning' )
    # Сообщение ошибки
    logging.error( u'This is an error message' )
    # Сообщение критическое
    logging.critical( u'FATAL!!!' )
    
    """
    def __init__(self, logerHandle="Отчеты для выбраных заказов", dgui=None, focus=False):
        self.dgui = dgui
        self.focus= focus
        self.dat = datetime.date.today()
        self.zsuf = self.dat.strftime('%Y%m.Dy')
        # Открываем logger
        self.logger = logging.getLogger(logerHandle)  #
        self.logger.setLevel(logging.DEBUG)  # Установлен Уровень отладки. будут выводиться дебаговые сообщения 
        self.cr_console()
        self.cr_formater()
        pass

    def set_DEFAULT_DIR(self, namedir=mpex().APPDATA):
        self.DEFAULT_DIR = namedir
        return namedir

    def set_LOG_FILENAME(self):
        if not 'DEFAULT_DIR' in self.__dict__.keys():
            self.set_DEFAULT_DIR()
        self.LOG_FILENAME = os.path.join(self.DEFAULT_DIR, self.dat.strftime('arch%Y%m.log'))


    def cr_console(self):
        '''Создать консольный обработчик и установить уровень для отладки'''
        if not 'LOG_FILENAME' in self.__dict__.keys():
            self.set_LOG_FILENAME()         
        self.ch = logging.FileHandler(self.LOG_FILENAME, 'w+')
        self.ch.setLevel(logging.DEBUG)

    def cr_formater(self, mask='%(filename)s[LINE:%(lineno)d]# %(levelname)-8s [%(asctime)s]  %(message)s'):
        ''' Создание форматирования
        '%(filename)s[LINE:%(lineno)d]# - %(name)s - %(levelname)-8s [%(asctime)s]  %(message)s'
        "%(asctime)s - %(name)s - %(levelname)s - %(message)s"
        '''
        self.formatter = logging.Formatter(mask)
        self.ch.setFormatter(self.formatter)
        # add ch to logger
        self.logger.addHandler(self.ch)
        print("Сообщения по ходу создания отчетов читайте в логфайле {0}".format(self.LOG_FILENAME))

    def info(self, strinf="Работу начали", focus=False):
        self.logger.info(strinf)
        self._update_dgui(strinf, focus)
        
    def warning(self, strinf="Внимание!", focus=False):
        self.logger.warning(strinf)
        self._update_dgui(strinf, focus)
        
    def error(self, strinf="Ошибка!", focus=False):
        self.logger.error(strinf)
        self._update_dgui(strinf, focus)

    def _update_dgui(self, strinf, focus):
        if not self.dgui is None:
            try:
                self.dgui.lbvalue2(strinf, focus)
            except:
                pass
        
def coseloggers(name_log="Reports For Select "):
    log = logging.getLogger(name_log)
    x = list(log.handlers)
    for i in x:
        log.removeHandler(i)
        i.flush()
        i.close()

        
        
        
DG = dGUI()
# Создаем экземпляр Логгера для записи информации о ходе процесса
logger = Logger(logerHandle="Reports For Select ", dgui=DG)
DG.logger = logger


# Дальше по функциям и методам

    DG.lbvalue("Сводный отчет")
    _mebelbase(k3, list_id_orders, PROJECTS, baseLog, _selp, AliasChDialog)
    if SLLOG.value != 1:
        t_diagnoz = k3.adbdiagnoz(1) # Включаем ругалки в к3
        logger.info('Oбщую базу по выбранным заказам нашли по адресу ', focus=True)
        logger.info(NAME_TEMP_BASE)
        return True, False
    if k3.fileexist(NAME_TEMP_BASE) > 0:
        logger.info('Удаляем найденную базу по выбранным заказам', focus=True)
        res = k3.removefile(NAME_TEMP_BASE)
        
    logger.info('Создаем базу по выбранным заказам', focus=True)
    k3.adbcreatemdb(NAME_TEMP_BASE, 1) # создаем временную базу

This snippet took 0.01 seconds to highlight.

Back to the Entry List or Home.

Delete this entry (admin only).