|
|
|
#!/usr/bin/env python3
|
|
|
|
#
|
|
|
|
# Copyright (c) 2016-2018, Neil Booth
|
|
|
|
#
|
|
|
|
# All rights reserved.
|
|
|
|
#
|
|
|
|
# See the file "LICENCE" for information about the copyright
|
|
|
|
# and warranty status of this software.
|
|
|
|
|
|
|
|
'''Script to kick off the server.'''
|
|
|
|
|
|
|
|
import logging
|
|
|
|
import sys
|
|
|
|
import traceback
|
|
|
|
|
|
|
|
from electrumx import Controller, Env
|
|
|
|
from electrumx.lib.util import CompactFormatter, make_logger
|
|
|
|
|
|
|
|
|
|
|
|
def main():
|
|
|
|
'''Set up logging and run the server.'''
|
|
|
|
log_fmt = Env.default('LOG_FORMAT', '%(levelname)s:%(name)s:%(message)s')
|
|
|
|
handler = logging.StreamHandler(sys.stdout)
|
|
|
|
handler.setFormatter(CompactFormatter(log_fmt))
|
|
|
|
make_logger('electrumx', handler=handler, level=logging.INFO)
|
|
|
|
|
|
|
|
logging.info('ElectrumX server starting')
|
|
|
|
try:
|
|
|
|
controller = Controller(Env())
|
|
|
|
controller.run()
|
|
|
|
except Exception:
|
|
|
|
traceback.print_exc()
|
|
|
|
logging.critical('ElectrumX server terminated abnormally')
|
|
|
|
else:
|
|
|
|
logging.info('ElectrumX server terminated normally')
|
|
|
|
|
|
|
|
|
|
|
|
if __name__ == '__main__':
|
|
|
|
main()
|