def initLogger(slackUrl=None): """Return logger.""" logger = logging.getLogger() logger.setLevel(logging.DEBUG) formatter = logging.Formatter('%(asctime)s [%(levelname)s] %(message)s') # stream = logging.StreamHandler() stream.setLevel(logging.INFO) stream.setFormatter(formatter) logger.addHandler(stream) # if slackUrl is not None and len(slackUrl) > 0: slack = SlackLogHandler( slackUrl, username='******', emojis={ logging.INFO: ':grinning:', logging.WARNING: ':white_frowning_face:', logging.ERROR: ':persevere:', logging.CRITICAL: ':confounded:', }) slack.setLevel(logging.INFO) slack.setFormatter(formatter) logger.addHandler(slack) return logger
def getSlackHandler(level, formatter): from slack_log_handler import SlackLogHandler if level is None: return None slackHandler = SlackLogHandler(SLACK_WEBHOOK_URL, username=SLACK_USERNAME) slackHandler.setLevel(level) slackHandler.setFormatter(formatter) return slackHandler
def get_module_logger(name=None): global loggers if 'loggers' not in globals(): loggers = {} if name is None: name = __name__ if loggers.get(name): return loggers.get(name) # logger の基本設定 logger = getLogger(name) logger.setLevel(LOG_LEVEL_BASE) formatter = Formatter("%(asctime)s :%(filename)-10s %(lineno)-4d:%(levelname)-8s:%(funcName)-22s:%(message)s") # 標準出力 Handler sh = StreamHandler() logger.addHandler(sh) sh.setLevel(LOG_LEVEL_BASE) sh.setFormatter(formatter) # ファイル出力 Handler if LOG_FILE_DIR is not None: fh = FileHandler(LOG_FILE_DIR) fh.setLevel(LOG_LEVEL_FILE) logger.addHandler(fh) fh.setFormatter(formatter) # slack への通知 if SLACK_WEBHOOK_URL is not None: slack = SlackLogHandler( SLACK_WEBHOOK_URL, username = HOSTNAME, emojis = { logging.INFO: ':cubimal_chick:', logging.WARNING: ':cloud:', logging.ERROR: ':japanese_goblin:', logging.CRITICAL: ':exploding_head:', } ) slack.setLevel(LOG_LEVEL_SLACK) slack.setFormatter(formatter) logger.addHandler(slack) logger.propagate = False loggers[name] = logger ln = lambda nolevel: logging.getLevelName(nolevel) # logger.info(f''' # 【 LOG CONFIG 】 # - LOG_LEVEL_BASE: {ln(LOG_LEVEL_BASE)}, # - LOG_FILE_DIR: {LOG_FILE_DIR}, # - LOG_LEVEL_FILE: {ln(LOG_LEVEL_FILE)}, # - SLACK_WEBHOOK_URL: {SLACK_WEBHOOK_URL}, # - LOG_LEVEL_SLACK: {ln(LOG_LEVEL_SLACK)}, # ''') return logger
def make_root_logger(console_loglevel: int = logging.DEBUG, file_loglevel: int = STOP_LOG, slack_loglevel: int = STOP_LOG, log_file_path: str = None) -> logging.Logger: """Generate the root logger, including Slack log handler. Args: console_loglevel: the logging level of console handler. file_loglevel: the logging level of file log handler. slack_loglevel: the logging level of slack log handler. log_file_path: the path of log file. Returns: the root logger """ root_logger = logging.getLogger() root_logger.setLevel(logging.DEBUG) formatter = logging.Formatter( fmt= "[%(levelname)s] %(asctime)s %(module)s::%(funcName)s, line %(lineno)d >> %(message)s" ) if console_loglevel < STOP_LOG: console_handler = logging.StreamHandler() console_handler.setFormatter(formatter) console_handler.setLevel(console_loglevel) root_logger.addHandler(console_handler) if log_file_path is not None and file_loglevel < STOP_LOG: file_handler = logging.FileHandler(log_file_path) file_handler.setFormatter(formatter) file_handler.setLevel(file_loglevel) root_logger.addHandler(file_handler) if slack_loglevel < STOP_LOG: env_val_name = "WEBHOOK_URL" try: webhook_url = os.environ[env_val_name] except KeyError as e: root_logger.error( "Environment variable \"{0}\" is not defined, so root logger cannot log to Slack." .format(env_val_name) + "Do \"export {0}=(WebHook URL)\" in the terminal or".format( env_val_name) + "edit environment variables in Edit Configurations, PyCharm". format(env_val_name)) else: slack_handler = SlackLogHandler(webhook_url) slack_handler.setFormatter(formatter) slack_handler.setLevel(slack_loglevel) root_logger.addHandler(slack_handler) return root_logger
def init_slack(): if not os.path.exists(HOME + '/.slack_hook'): return wh = json.loads(open(HOME + '/.slack_hook').read()) formatter = logging.Formatter('%(asctime)s [%(levelname)s] %(message)s') slack = SlackLogHandler(wh['webhook'], username='******', emojis={ logging.INFO: ':grinning:', logging.WARNING: ':white_frowning_face:', logging.ERROR: ':persevere:', logging.CRITICAL: ':confounded:', }) slack.setLevel(logging.INFO) slack.setFormatter(formatter) logger.addHandler(slack)
def getMyLogger(ENV): logger = logging.getLogger(__name__) logger.setLevel(logging.DEBUG) formatter = logging.Formatter("%(asctime)s ["+ENV+"] %(message)s","%m/%d %H:%M:%S") handler = logging.StreamHandler() handler.setFormatter(formatter) logger.addHandler(handler) slack = SlackLogHandler( 'https://hooks.slack.com/services/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', username = '******' ) slack.setLevel(logging.INFO) slack.setFormatter(formatter) logger.addHandler(slack) return logger
def getMyLogger(ENV): logger = logging.getLogger(__name__) logger.setLevel(logging.DEBUG) formatter = logging.Formatter("%(asctime)s [" + ENV + "] %(message)s", "%m/%d %H:%M:%S") handler = logging.StreamHandler() handler.setFormatter(formatter) logger.addHandler(handler) slack = SlackLogHandler( 'https://hooks.slack.com/services/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', username='******') slack.setLevel(logging.INFO) slack.setFormatter(formatter) logger.addHandler(slack) return logger
def __init__(self, *args, **kwargs): super(SlackLog, self).__init__(*args, **kwargs) self._config = { 'webhook_url': self.config.as_str('webhook_url', default=None), 'username': self.config.as_str('username', default='bot') } slack_handler = SlackLogHandler(self._config['webhook_url'], username=self._config['username'], emojis={ logging.INFO: ":white_circle:", logging.DEBUG: ":black_circle:", logging.ERROR: ":red_circle:" }) logFormat = "%(asctime)s %(levelname)s %(message)s" formatter = logging.Formatter(fmt=logFormat) slack_handler.setFormatter(formatter) self.logger = logging.getLogger("slacklog") self.logger.setLevel(logging.DEBUG) self.logger.addHandler(slack_handler) self.logger.setLevel(logging.DEBUG)
# # Slack Handler # slack = SlackLogHandler(os.getenv( 'SLACK_WEB_HOOK', "https://hooks.slack.com/services/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" ), username='******', emojis={ logging.INFO: ':grinning:', logging.WARNING: ':white_frowning_face:', logging.ERROR: ':persevere:', logging.CRITICAL: ':confounded:', }) slack.setLevel(logging.INFO) slack.setFormatter(formatter) # # logger に Handler を追加 # logger.addHandler(stream) logger.addHandler(slack) if __name__ == '__main__': logger.info('Green 開始しました') # Pathの決定 home = os.environ.get('ASP_HOME', '/home/asp') now = datetime.datetime.utcnow() + datetime.timedelta(hours=9) if os.path.isdir(home + '/db/{year:04d}'.format(year=now.year)) is False: os.makedirs(home + '/db/{year:04d}'.format(year=now.year))
logger.addHandler(dfile_handler) # ファイル出力(error) efile_handler = logging.FileHandler('collect/log/error.log', 'a') efile_handler.setLevel(logging.ERROR) efile_handler.setFormatter(format) logger.addHandler(efile_handler) # slack slack_handler = SlackLogHandler(webhook_url=alert_url, emojis={ logging.INFO: ':grinning:', logging.WARNING: ':white_frowning_face:', logging.ERROR: ':persevere:', logging.CRITICAL: ':confounded:', }) slack_handler.setLevel(logging.ERROR) slack_handler.setFormatter(format) logger.addHandler(slack_handler) class SimpleListener(SubscribeListener): def __init__(self, conn): super().__init__() self.conn = conn def create_query(self): query = 'INSERT INTO crypto.candlestick (' \ 'pid, channel, timetoken, timestamp, ' \ 'open_1min, high_1min, low_1min, close_1min, volume_1min, timestamp_1min,' \ 'open_5min, high_5min, low_5min, close_5min, volume_5min, timestamp_5min,' \ 'open_15min, high_15min, low_15min, close_15min, volume_15min, timestamp_15min,' \ 'open_30min, high_30min, low_30min, close_30min, volume_30min, timestamp_30min,' \