def cli(ctx, githome, loglevel): ctx.obj = {} if loglevel is None: loglevel = logbook.INFO # setup sqlalchemy loglevel if loglevel is logbook.DEBUG: redirect_logging() logging.getLogger('sqlalchemy.engine').setLevel(logging.DEBUG) # setup console logging NullHandler().push_application() handler = ColorizedStderrHandler(level=loglevel) handler.format_string = '{record.channel}: {record.message}' handler.push_application() ctx.obj['githome_path'] = pathlib.Path(githome) # if we're just calling init, do not initialize githome if ctx.invoked_subcommand == 'init': return # check if the home is valid if not GitHome.check(ctx.obj['githome_path']): log.critical('Not a valid githome: "{}"; use {} init to initialize it ' 'first.'.format(githome, 'githome')) abort(1) # create and add to context gh = GitHome(ctx.obj['githome_path']) ctx.obj['githome'] = gh
def cli(context, pkg_path, configfiles, debug, confvars): pkg_path = list(pkg_path) if 'REMAND_PKG_PATH' in os.environ: pkg_path.extend(os.environ['REMAND_PKG_PATH'].split(os.pathsep)) # add contrib to pkg path import remand.contrib as contrib pkg_path.append(os.path.abspath(os.path.dirname(contrib.__file__))) # pluginbase is imported here because just importing it breaks Crypto # (and with it paramiko) import pluginbase plugin_base = pluginbase.PluginBase(package='remand.ext') obj = context.obj = {} handler = ColorizedStderrHandler( level=logbook.DEBUG if debug else logbook.INFO) # setup logging logbook.compat.redirect_logging() handler.push_application() # read configuration and host registry obj['config'] = load_configuration(APP_NAME, configfiles) # set configuration values for k, v in confvars: obj['config']['Match:.*'][k] = v log.debug('Set Match.*:[{!r}] = {!r}'.format(k, v)) obj['hosts'] = HostRegistry(obj['config']) plugin_source = plugin_base.make_plugin_source( searchpath=list(pkg_path) + ['.']) obj['plugin_source'] = plugin_source
def get_logger(perform_rollover=False): """ Push to the app stack the needed handlers and return a Logger object. :rtype: logbook.Logger """ # NOTE: make sure that the folder exists, the logger is created before # saving settings on the first run. _base = os.path.join(get_path_prefix(), "leap") mkdir_p(_base) bitmask_log_file = os.path.join(_base, 'bitmask.log') level = logbook.WARNING if flags.DEBUG: level = logbook.NOTSET # This handler consumes logs not handled by the others null_handler = logbook.NullHandler() null_handler.push_application() silencer = SelectiveSilencerFilter() zmq_handler = SafeZMQHandler('tcp://127.0.0.1:5000', multi=True, level=level, filter=silencer.filter) zmq_handler.push_application() file_handler = logbook.RotatingFileHandler( bitmask_log_file, format_string=LOG_FORMAT, bubble=True, filter=silencer.filter, max_size=sys.maxint) if perform_rollover: file_handler.perform_rollover() file_handler.push_application() # don't use simple stream, go for colored log handler instead # stream_handler = logbook.StreamHandler(sys.stdout, # format_string=LOG_FORMAT, # bubble=True) # stream_handler.push_application() stream_handler = ColorizedStderrHandler( level=level, format_string=LOG_FORMAT, bubble=True, filter=silencer.filter) stream_handler.push_application() logger = logbook.Logger('leap') return logger
def get_logger(perform_rollover=False): """ Push to the app stack the needed handlers and return a Logger object. :rtype: logbook.Logger """ level = logbook.WARNING if flags.DEBUG: level = logbook.NOTSET # This handler consumes logs not handled by the others null_handler = logbook.NullHandler() null_handler.push_application() silencer = SelectiveSilencerFilter() zmq_handler = SafeZMQHandler('tcp://127.0.0.1:5000', multi=True, level=level, filter=silencer.filter) zmq_handler.push_application() file_handler = logbook.RotatingFileHandler( BITMASK_LOG_FILE, format_string=LOG_FORMAT, bubble=True, filter=silencer.filter, max_size=sys.maxint) if perform_rollover: file_handler.perform_rollover() file_handler.push_application() # don't use simple stream, go for colored log handler instead # stream_handler = logbook.StreamHandler(sys.stdout, # format_string=LOG_FORMAT, # bubble=True) # stream_handler.push_application() stream_handler = ColorizedStderrHandler( level=level, format_string=LOG_FORMAT, bubble=True, filter=silencer.filter) stream_handler.push_application() logger = logbook.Logger('leap') return logger
def cli(context, pkg_path, configfiles, debug, confvars, debug_ssh): pkg_path = list(pkg_path) if 'REMAND_PKG_PATH' in os.environ: pkg_path.extend(os.environ['REMAND_PKG_PATH'].split(os.pathsep)) # add contrib to pkg path import remand.contrib as contrib pkg_path.append(os.path.abspath(os.path.dirname(contrib.__file__))) # pluginbase is imported here because just importing it breaks Crypto # (and with it paramiko) import pluginbase plugin_base = pluginbase.PluginBase(package='remand.ext') obj = context.obj = {} handler = ColorizedStderrHandler( level=logbook.DEBUG if debug else logbook.INFO) # setup logging logbook.compat.redirect_logging() handler.push_application() if not debug_ssh: logbook.NullHandler(filter=lambda r, h: r.channel.startswith( 'paramiko')).push_application() # read configuration and host registry obj['config'] = load_configuration(APP_NAME, configfiles) # set configuration values for k, v in confvars: obj['config']['Match:.*'][k] = v log.debug('Set Match.*:[{!r}] = {!r}'.format(k, v)) obj['hosts'] = HostRegistry(obj['config']) plugin_source = plugin_base.make_plugin_source(searchpath=list(pkg_path) + ['.']) obj['plugin_source'] = plugin_source
def get_logger(perform_rollover=False): """ Push to the app stack the needed handlers and return a Logger object. :rtype: logbook.Logger """ # NOTE: make sure that the folder exists, the logger is created before # saving settings on the first run. _base = os.path.join(get_path_prefix(), "leap") mkdir_p(_base) bitmask_log_file = os.path.join(_base, 'bitmask.log') # level = logbook.WARNING # if flags.DEBUG: # level = logbook.NOTSET level = logbook.NOTSET # This handler consumes logs not handled by the others null_handler = logbook.NullHandler() null_handler.push_application() file_handler = logbook.RotatingFileHandler(bitmask_log_file, format_string=LOG_FORMAT, bubble=True, max_size=sys.maxint) if perform_rollover: file_handler.perform_rollover() file_handler.push_application() stream_handler = ColorizedStderrHandler(level=level, format_string=LOG_FORMAT, bubble=True) stream_handler.push_application() logger = logbook.Logger('leap') return logger
def __init__(self, log_dir=BASE_DIR, log_name='log.log', backup_count=10, log_type=log_type, stdOutFlag=False): if not os.path.exists(log_dir): os.mkdir(log_dir) self.log_dir = log_dir self.backup_count = backup_count handler = TimedRotatingFileHandler(filename= os.path.join(self.log_dir, log_name), date_format='%Y-%m-%d', backup_count=self.backup_count) self.handler = handler if log_type is not None: handler.formatter = log_type handler.push_application() if not stdOutFlag: return handler_std = ColorizedStderrHandler(bubble=True) if log_type is not None: handler_std.formatter = log_type handler_std.push_application()
def get_logger(perform_rollover=False): """ Push to the app stack the needed handlers and return a Logger object. :rtype: logbook.Logger """ # NOTE: make sure that the folder exists, the logger is created before # saving settings on the first run. _base = os.path.join(get_path_prefix(), "leap") mkdir_p(_base) bitmask_log_file = os.path.join(_base, "bitmask.log") # level = logbook.WARNING # if flags.DEBUG: # level = logbook.NOTSET level = logbook.NOTSET # This handler consumes logs not handled by the others null_handler = logbook.NullHandler() null_handler.push_application() file_handler = logbook.RotatingFileHandler( bitmask_log_file, format_string=LOG_FORMAT, bubble=True, max_size=sys.maxint ) if perform_rollover: file_handler.perform_rollover() file_handler.push_application() stream_handler = ColorizedStderrHandler(level=level, format_string=LOG_FORMAT, bubble=True) stream_handler.push_application() logger = logbook.Logger("leap") return logger
from ..bmsUtils import ExecutionContext __all__ = [ "user_log", ] def user_log_formatter(record, handler): return "[{dt}] {level}: {msg}".format( dt=ExecutionContext.get_current_dt(), level=record.level_name, msg=record.message, ) # handler = StreamHandler(sys.stdout) handler = ColorizedStderrHandler() handler.formatter = user_log_formatter handler.push_application() user_log = Logger("user_log") def user_print(*args, **kwargs): sep = kwargs.get("sep", " ") end = kwargs.get("end", "") message = sep.join(map(str, args)) + end user_log.info(message)
__all__ = [ "user_log", ] def user_log_formatter(record, handler): return "[{dt}] {level}: {msg}".format( dt=ExecutionContext.get_current_dt(), level=record.level_name, msg=record.message, ) # handler = StreamHandler(sys.stdout) handler = ColorizedStderrHandler() handler.formatter = user_log_formatter handler.push_application() user_log = Logger("user_log") def user_print(*args, **kwargs): sep = kwargs.get("sep", " ") end = kwargs.get("end", "") message = sep.join(map(str, args)) + end user_log.info(message)
import time import logbook from logbook.more import ColorizedStderrHandler from uuid import uuid4 from datetime import datetime from threading import Thread from xmlrpc.server import SimpleXMLRPCServer import xmlrpc.client # set as local time format (default is utc) logbook.set_datetime_format('local') # std_handler = StreamHandler(sys.stdout, level='INFO') std_handler = ColorizedStderrHandler(bubble=True, level='INFO') std_handler.push_application() file_name = "rpc_server_{}.log".format(datetime.now().strftime("%Y-%m-%d")) fp_handler = logbook.FileHandler(file_name, bubble=True, level='INFO') fp_handler.push_application() log = logbook.Logger("rpc_svr") g_worker_proxies = dict() g_order_no = 0 class WorkerProxy: def __init__(self, worker_id): self.worker_id = worker_id self.last_heartbeat_timestamp = time.time()