#!/usr/bin/env python3.7
|
|
import logging
|
|
from Server import Server
|
|
|
|
|
|
def initLogging(logFileName: str) -> None:
|
|
"""
|
|
Initialise the logging method
|
|
"""
|
|
logFormatter = logging.Formatter(
|
|
fmt="[%(asctime)s][%(levelname)s] %(message)s",
|
|
datefmt='%d-%b-%y %H:%M:%S')
|
|
|
|
rootLogger = logging.getLogger()
|
|
|
|
fileHandler = logging.FileHandler(logFileName, mode='a')
|
|
fileHandler.setFormatter(logFormatter)
|
|
rootLogger.addHandler(fileHandler)
|
|
|
|
consoleHandler = logging.StreamHandler()
|
|
consoleHandler.setFormatter(logFormatter)
|
|
rootLogger.addHandler(consoleHandler)
|
|
|
|
rootLogger.setLevel(logging.INFO)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
import argparse
|
|
parser = argparse.ArgumentParser()
|
|
parser.add_argument('host',
|
|
metavar='HOST',
|
|
help='IP to listen.',
|
|
type=str)
|
|
parser.add_argument('port',
|
|
metavar='PORT',
|
|
help='Port to listen.',
|
|
type=int)
|
|
parser.add_argument('--logFile',
|
|
metavar='LOGPATH',
|
|
help='Path to log file, default is log.txt',
|
|
type=str,
|
|
required=False,
|
|
default='log.txt')
|
|
args = parser.parse_args()
|
|
|
|
initLogging(args.logFile)
|
|
|
|
try:
|
|
Server(args.host, args.port).run()
|
|
except KeyboardInterrupt:
|
|
logging.info('Stopped by user input')
|