def get_logentries_handler(): import os from logentries import LogentriesHandler handler = LogentriesHandler(os.getenv("LOGENTRIES_TOKEN")) handler.setFormatter(formatter) handler.setLevel(logging.INFO) return handler
def get_custom_logger(name): """ Set up loggers according to environment and configuration. """ file = app.config['LOGGER_FILEPATH'] token = app.config['LOGENTRIES_TOKEN'] level = DEBUG if app.config['DEBUG'] else INFO context = app.config['ENVIRONMENT'] log = getLogger(name) log.setLevel(level) # shared by all handlers formatter = Formatter( '[%(asctime)s] ' '[%(process)d] ' '[%(name)s] ' '[%(levelname)s] ' '%(message)s' ) if context != 'testing' and file: file = FileHandler(file, mode='a+') file.setLevel(level) file.setFormatter(formatter) log.addHandler(file) if context == 'development': console = StreamHandler(stream=stdout) console.setLevel(level) console.setFormatter(formatter) log.addHandler(console) if context != 'testing' and token: logentries = LogentriesHandler(token) logentries.setLevel(level) logentries.setFormatter(formatter) log.addHandler(logentries) return log
' %(name)s: %(message)s', datefmt='%b %d %H:%M:%S') syslog_address = os.getenv('SYSLOG_ADDRESS', '') if syslog_address: syslog_host, syslog_udp_port = syslog_address.split(":") syslog_handler = SysLogHandler(address=(syslog_host, int(syslog_udp_port))) syslog_handler.setFormatter(syslog_formatter) syslog_handler.setLevel(syslog_logging_level) logging_handlers.append(syslog_handler) logentries_token = os.getenv('LOGENTRIES_TOKEN', '') if logentries_token: logentries_handler = LogentriesHandler(logentries_token) logentries_handler.setFormatter(syslog_formatter) logentries_handler.setLevel(syslog_logging_level) logging_handlers.append(logentries_handler) logging.basicConfig( format='%(asctime)s - %(name)s - %(levelname)s - %(message)s', datefmt='%Y-%m-%d %H:%M:%S', level=logging.DEBUG, handlers=logging_handlers) def main(): botan_token = os.getenv('BOTAN_TOKEN', '') sc_auth_token = os.environ['SC_AUTH_TOKEN'] store_chat_id = int(os.getenv('STORE_CHAT_ID', '0')) no_flood_chat_ids = list( map(int,
request.remote_addr) if current_user.is_anonymous(): log_record.user_id = 'guest' else: log_record.user_id = current_user.get_id() return True # Use said info log_format = ("%(utcnow)s\tl=%(levelname)s\tu=%(user_id)s\tip=%(ip)s" "\tm=%(method)s\turl=%(url)s\tmsg=%(message)s") formatter = logging.Formatter(log_format) # - Handlers # -- Stream handler streamHandler = logging.StreamHandler() streamHandler.setLevel(logging.INFO) streamHandler.setFormatter(formatter) # -- LogEntries handler leHandler = LogentriesHandler(app.config['LOGENTRIES_TOKEN']) leHandler.setLevel(logging.INFO) leHandler.setFormatter(formatter) # - Logger log = app.logger log.setLevel(logging.DEBUG) log.addFilter(ContextualFilter()) log.addHandler(streamHandler) log.addHandler(leHandler)