def get_logger(name): logger = logging.getLogger(name) logger.setLevel(logging.INFO) ch = logging.StreamHandler() ch.setLevel(logging.DEBUG) formatter = logging.Formatter( '%(asctime)s - %(filename)s:%(lineno)s - %(levelname)s - %(message)s') ch.setFormatter(formatter) logger.addHandler(ch) return logger
async def main(loop): from workq.worker import Orchestrator from monkey_patch import setup setup() address = os.environ['ORCHESTRATOR_ADDRESS'] db_host = os.environ.get('DATABASE_HOST') db_port = os.environ.get('DATABASE_PORT') logger.info(f"Address: {address}") addr, port = address.split(':') orchestrator = Orchestrator(addr, port) global cfg cfg = await config() worker = await orchestrator.join(service) hc = setup_healthcheck(worker) handler = hc.make_handler() srv = await loop.create_server(handler, '0.0.0.0', 5000) addr, port = srv.sockets[0].getsockname() logger.debug(f'Healthcheck endpoint started on http://{addr}:{port}') db = await connection(db_host, db_port) log_handler = db.get_log_handler(f"worker-{worker.own_ip()}") log_handler.setLevel(logging.INFO) logger.addHandler(log_handler) try: await worker.run_until_complete() except KeyboardInterrupt: pass finally: srv.close() await hc.shutdown() await handler.shutdown(60.0) await handler.finish_connections(1.0) await hc.cleanup() cfg.teardown()
def _get_logger(logdir, logname, loglevel=logging.INFO): # https://wikidocs.net/3736 fmt = "[%(asctime)s] %(levelname)s: %(message)s" formatter = logging.Formatter(fmt) # handler = logging.handlers.RotatingFileHandler( handler = logging.handlers.TimedRotatingFileHandler( filename=os.path.join(logdir, logname), # maxBytes=2 * 1024 * 1024 * 1024, # backupCount=10, when='midnight', interval=1, encoding='utf-8') handler.setFormatter(formatter) logger = logging.getLogger("") logger.addHandler(handler) logger.setLevel(loglevel) return logger
def setup_logger(name, save_dir, distributed_rank, level="INFO"): logger = logging.getLogger(name) logger.setLevel(10) # don't log results for the non-master process if distributed_rank > 0: return logger ch = logging.StreamHandler(stream=sys.stdout) ch.setLevel(getattr(logging, level.upper())) formatter = logging.Formatter( "%(asctime)s %(name)s %(levelname)s: %(message)s") ch.setFormatter(formatter) logger.addHandler(ch) if save_dir: fh = logging.FileHandler(os.path.join(save_dir, "log.txt"), mode='w') fh.setLevel(getattr(logging, level.upper())) fh.setFormatter(formatter) logger.addHandler(fh) return logger
MAX_BYTES = 1000000 BACKUP_COUNT = 5 # Change this if you don't want to see all the logging in the console logzero.loglevel(logging.DEBUG) # logzero.loglevel(logging.INFO) # logzero.loglevel(logging.WARNING) # logzero.loglevel(logging.ERROR) # Log debug and up to the debug file logzero.logfile('logs/debug.log', maxBytes=MAX_BYTES, backupCount=BACKUP_COUNT, loglevel=logging.DEBUG) # Find the just added debug log handler so we can add it back in when it's removed debug_handler = None for handler in list(logger.handlers): if isinstance(handler, RotatingFileHandler) and hasattr( handler, logzero.LOGZERO_INTERNAL_LOGGER_ATTR): debug_handler = handler # Add an error-only log handler, this will remove the debug one we just added logzero.logfile('logs/error.log', maxBytes=MAX_BYTES, backupCount=BACKUP_COUNT, loglevel=logging.ERROR) # Add the debug one back in logger.addHandler(debug_handler)
import logzero from logzero import logger from logging.handlers import TimedRotatingFileHandler from spot_api import OkexSpotApi from future_api import OkexFutureApi log_directory = './logs' if not os.path.exists(log_directory): os.makedirs(log_directory) time_rotating_file_handler = TimedRotatingFileHandler( filename='./logs/okex_{}.log'.format( datetime.datetime.now().strftime('%Y-%m-%d')), when='midnight', encoding='utf8') logger.addHandler(time_rotating_file_handler) logzero.formatter( logzero.LogFormatter( fmt='[%(levelname)1.1s %(asctime)s %(module)s:%(lineno)d] %(message)s' ), True) apikey = '' secretkey = '' okex_rest_host = 'https://www.okex.com' spot_api = OkexSpotApi(okex_rest_host, apikey, secretkey) future_api = OkexFutureApi(okex_rest_host, apikey, secretkey) if __name__ == '__main__': config = json.load(open('config.json')) apikey = config['api_key']
#logging.basicConfig(format=__logFormat, level=conf.loglevel) # ?? # The following is needed to override the Maya logging configuration, the "basicConfig" does not work #logger = logging.getLogger() """ for handler in logger.handlers: handler.setFormatter(logging.Formatter(fmt=__logFormat)) """ # we set a new handler handler = logging.StreamHandler(sys.stdout) handler.setFormatter(logzero.LogFormatter(fmt=__logFormat, color=True)) logger.handlers = [] logger.addHandler(handler) logzero.formatter(logging.Formatter(fmt=__logFormat)) logger.setLevel(conf.loglevel) """ Code shortcuts """ debug = logger.debug info = logger.info warn = logger.warn error = logger.error critical = logger.critical setLevel = logger.setLevel getLevel = logger.getEffectiveLevel