Skip to content
Snippets Groups Projects
Commit 55ab7dcc authored by jkerdreu's avatar jkerdreu
Browse files

Added AsyncEngine helpers

git-svn-id: https://redmine.imt-atlantique.fr/svn/xaal/code/Python/branches/0.7@2697 b32b6428-25c9-4566-ad07-03861ab6144f
parent a16e5156
No related branches found
No related tags found
No related merge requests found
......@@ -7,7 +7,9 @@ import logging
import logging.handlers
import os
import time
import signal
import coloredlogs
from xaal.lib import asyncio
from . import config,Engine
......@@ -35,7 +37,9 @@ def set_console_title(value):
print("\x1B]0;xAAL => %s\x07" % value )
def setup_console_logger(level=config.log_level):
coloredlogs.install(level=level)
#fmt = '%(asctime)s %(hostname)s %(name)s:%(funcName)s %(levelname)s %(message)s'
fmt = '[%(name)s] %(funcName)s %(levelname)s: %(message)s'
coloredlogs.install(level=level,fmt=fmt)
def setup_file_logger(name,level=config.log_level,filename = None):
filename = filename or os.path.join(config.log_path,'%s.log' % name)
......@@ -48,6 +52,13 @@ def setup_file_logger(name,level=config.log_level,filename = None):
logger.root.addHandler(handler)
logger.root.setLevel('DEBUG')
# ---------------------------------------------------------------------------
# TBD: We should merge this stuffs, and add support for default config file
# and commnand line parsing.
#
# Default arguments console_log and file_log are (and should) never be used.
# ---------------------------------------------------------------------------
def run_package(pkg_name,pkg_setup,console_log = True,file_log=False):
if console_log:
set_console_title(pkg_name)
......@@ -64,3 +75,30 @@ def run_package(pkg_name,pkg_setup,console_log = True,file_log=False):
eng.run()
except KeyboardInterrupt:
logger.info("exit")
def run_async_package(pkg_name,pkg_setup,console_log = True,file_log=False):
if console_log:
set_console_title(pkg_name)
setup_console_logger()
if file_log:
setup_file_logger(pkg_name)
from .asyncio import AsyncEngine
eng = AsyncEngine()
logger = logging.getLogger(pkg_name)
logger.info('starting xaal package: %s'% pkg_name )
result = pkg_setup(eng)
import asyncio
loop = asyncio.get_event_loop()
asyncio.ensure_future(eng.run())
if result != True:
logger.critical("something goes wrong with package: %s" % pkg_name)
for signame in ["SIGINT", "SIGTERM","SIGQUIT"]:
loop.add_signal_handler(getattr(signal, signame), loop.stop)
loop.run_forever()
logger.info("Exit")
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment