Skip to content
Snippets Groups Projects
Commit 461e2ec6 authored by jkerdreu's avatar jkerdreu
Browse files

Welcome to world

git-svn-id: https://redmine.imt-atlantique.fr/svn/xaal/code/Python/trunk@2068 b32b6428-25c9-4566-ad07-03861ab6144f
parent 9ca7cc0d
No related branches found
No related tags found
No related merge requests found
"""
This file contains some helpers functions. This functions aren't used in the lib itself
but can be usefull for xaal packages developpers
"""
import logging
import logging.handlers
import os
from . import config,Engine
def singleton(class_):
instances = {}
def getinstance(*args, **kwargs):
if class_ not in instances:
instances[class_] = class_(*args, **kwargs)
return instances[class_]
return getinstance
def setup_console_logger(name,level=config.log_level):
formatter = logging.Formatter('%(asctime)s [%(name)s] %(levelname)s: %(message)s',datefmt='%Y-%m-%d %H:%M:%S')
handler = logging.StreamHandler()
handler.setLevel(level)
handler.setFormatter(formatter)
# register the new handler
logger = logging.getLogger(name)
logger.root.addHandler(handler)
def setup_file_logger(name,level=config.log_level,filename = None):
filename = filename or os.path.join(config.log_path,'%s.log' % name)
formatter = logging.Formatter('%(asctime)s - %(levelname)s - %(name)s - %(message)s')
handler = handler = logging.handlers.RotatingFileHandler(filename, 'a', 10000, 1, 'utf8')
handler.setLevel(level)
handler.setFormatter(formatter)
# register the new handler
logger = logging.getLogger(name)
logger.root.addHandler(handler)
def run_package(pkg_name,pkg_setup,console_log = True,file_log=False):
if console_log:
logger = logging.getLogger(pkg_name).root.setLevel('DEBUG')
setup_console_logger(pkg_name,'DEBUG')
if file_log:
setup_file_logger(pkg_name)
eng = Engine()
logger = logging.getLogger(pkg_name)
logger.info('starting xaal package: %s'% pkg_name )
result = pkg_setup(eng)
try:
eng.run()
except KeyboardInterrupt:
logger.info("exit")
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment