| #!/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')
 |