hugvey/hugvey_server.py

72 lines
2.4 KiB
Python
Raw Normal View History

import argparse
import logging
import coloredlogs
from hugvey.central_command import CentralCommand
if __name__ == '__main__':
argParser = argparse.ArgumentParser(
description='Start up a Hugvey Central Command. Ready to receive voices and other events, and eager to send commands')
argParser.add_argument(
'--config',
'-c',
required=True,
type=str,
help='The yaml config file to load'
)
argParser.add_argument(
'--verbose',
'-v',
action='count', default=0
)
argParser.add_argument(
'--voyeur',
action='store_true',
help="Listen in on what is being said'."
)
args = argParser.parse_args()
# print(coloredlogs.DEFAULT_LOG_FORMAT)
# exit()
loglevel = logging.NOTSET if args.verbose > 1 else logging.DEBUG if args.verbose > 0 else logging.INFO
coloredlogs.install(
level=loglevel,
# default: "%(asctime)s %(hostname)s %(name)s[%(process)d] %(levelname)s %(message)s"
fmt="%(asctime)s %(hostname)s %(name)s[%(process)d,%(threadName)s] %(levelname)s %(message)s"
)
2019-11-12 17:09:48 +00:00
rootLogger = logging.getLogger()
logger = logging.getLogger("hugvey")
2019-11-12 13:35:36 +00:00
logFileHandler = logging.handlers.RotatingFileHandler(
2019-11-13 15:57:44 +00:00
'./state/server.log',
maxBytes=1024*5120,
2019-11-12 13:35:36 +00:00
backupCount=5
)
logFileHandler.setFormatter(logging.Formatter(
fmt="%(asctime)s %(name)s[%(process)d,%(threadName)s] %(levelname)s %(message)s"
))
2019-11-12 13:36:47 +00:00
logFileHandler.setLevel(logging.DEBUG)
2019-11-14 19:17:46 +00:00
# Buffer the writing to disk, to make it more efficient
memBufferHandler = logging.handlers.MemoryHandler(200, flushLevel=logging.ERROR, target=logFileHandler, flushOnClose=True)
rootLogger.addHandler(memBufferHandler)
2019-11-12 13:35:36 +00:00
# logger.setLevel(1) # to send all records to cutelog
socket_handler = logging.handlers.SocketHandler('127.0.0.1', 19996) # default listening address
2019-11-14 19:17:46 +00:00
socket_handler.setLevel(logging.INFO) # OR should it be DEBUG? chaned to see difference in logging speed
2019-11-12 17:09:48 +00:00
rootLogger.addHandler(socket_handler)
logger.info("Start server")
try:
print('\33]0;Hugvey server\a', end='', flush=True)
command = CentralCommand(args=args, debug_mode=args.verbose > 0)
command.loadConfig(args.config)
command.start()
finally:
# reset terminal title
print('\33]0;\a', end='', flush=True)