def _startlog(options, reactor): """ Start the logging in a way that all the subcommands can use it. """ from twisted.logger import globalLogPublisher from txaio import start_logging, set_global_log_level loglevel = getattr(options, "loglevel", "info") logformat = getattr(options, "logformat", "none") colour = getattr(options, "colour", "auto") set_global_log_level(loglevel) # The log observers (things that print to stderr, file, etc) observers = [] if getattr(options, "logtofile", False): # We want to log to a file from crossbar._logging import make_logfile_observer if not options.logdir: logdir = options.cbdir else: logdir = options.logdir logfile = os.path.join(logdir, "node.log") if loglevel in ["error", "warn", "info"]: show_source = False else: show_source = True observers.append(make_logfile_observer(logfile, show_source)) else: # We want to log to stdout/stderr. from crossbar._logging import make_stdout_observer from crossbar._logging import make_stderr_observer from crossbar._logging import LogLevel if colour == "auto": if sys.__stdout__.isatty(): colour = True else: colour = False elif colour == "true": colour = True else: colour = False if loglevel == "none": # Do no logging! pass elif loglevel in ["error", "warn", "info"]: # Print info to stdout, warn+ to stderr observers.append(make_stdout_observer(show_source=False, format=logformat, colour=colour)) observers.append(make_stderr_observer(show_source=False, format=logformat, colour=colour)) elif loglevel == "debug": # Print debug+info to stdout, warn+ to stderr, with the class # source observers.append(make_stdout_observer(show_source=True, levels=(LogLevel.info, LogLevel.debug), format=logformat, colour=colour)) observers.append(make_stderr_observer(show_source=True, format=logformat, colour=colour)) elif loglevel == "trace": # Print trace+, with the class source observers.append(make_stdout_observer(show_source=True, levels=(LogLevel.info, LogLevel.debug), format=logformat, trace=True, colour=colour)) observers.append(make_stderr_observer(show_source=True, format=logformat, colour=colour)) else: assert False, "Shouldn't ever get here." for observer in observers: globalLogPublisher.addObserver(observer) # Make sure that it goes away reactor.addSystemEventTrigger('after', 'shutdown', globalLogPublisher.removeObserver, observer) # Actually start the logger. start_logging(None, loglevel)
def _startlog(options, reactor): """ Start the logging in a way that all the subcommands can use it. """ loglevel = getattr(options, "loglevel", "info") logformat = getattr(options, "logformat", "none") colour = getattr(options, "colour", "auto") set_global_log_level(loglevel) # The log observers (things that print to stderr, file, etc) observers = [] if getattr(options, "logtofile", False): # We want to log to a file if not options.logdir: logdir = options.cbdir else: logdir = options.logdir logfile = os.path.join(logdir, "node.log") if loglevel in ["error", "warn", "info"]: show_source = False else: show_source = True observers.append(make_logfile_observer(logfile, show_source)) else: # We want to log to stdout/stderr. if colour == "auto": if sys.__stdout__.isatty(): colour = True else: colour = False elif colour == "true": colour = True else: colour = False if loglevel == "none": # Do no logging! pass elif loglevel in ["error", "warn", "info"]: # Print info to stdout, warn+ to stderr observers.append(make_stdout_observer(show_source=False, format=logformat, colour=colour)) observers.append(make_stderr_observer(show_source=False, format=logformat, colour=colour)) elif loglevel == "debug": # Print debug+info to stdout, warn+ to stderr, with the class # source observers.append(make_stdout_observer(show_source=True, levels=(LogLevel.info, LogLevel.debug), format=logformat, colour=colour)) observers.append(make_stderr_observer(show_source=True, format=logformat, colour=colour)) elif loglevel == "trace": # Print trace+, with the class source observers.append(make_stdout_observer(show_source=True, levels=(LogLevel.info, LogLevel.debug), format=logformat, trace=True, colour=colour)) observers.append(make_stderr_observer(show_source=True, format=logformat, colour=colour)) else: assert False, "Shouldn't ever get here." for observer in observers: globalLogPublisher.addObserver(observer) # Make sure that it goes away reactor.addSystemEventTrigger('after', 'shutdown', globalLogPublisher.removeObserver, observer) # Actually start the logger. start_logging(None, loglevel)
def _startlog(options): """ Start the logging in a way that all the subcommands can use it. """ from crossbar._logging import log_publisher, start_logging from crossbar._logging import set_global_log_level loglevel = getattr(options, "loglevel", "info") logformat = getattr(options, "logformat", "none") set_global_log_level(loglevel) if getattr(options, "logtofile", False): # We want to log to a file from crossbar._logging import make_logfile_observer if not options.logdir: logdir = options.cbdir else: logdir = options.logdir logfile = os.path.join(logdir, "node.log") if loglevel in ["error", "warn", "info"]: show_source = False else: show_source = True log_publisher.addObserver(make_logfile_observer(logfile, show_source)) else: # We want to log to stdout/stderr. from crossbar._logging import make_stdout_observer from crossbar._logging import make_stderr_observer if loglevel == "none": # Do no logging! pass elif loglevel in ["error", "warn", "info"]: # Print info to stdout, warn+ to stderr log_publisher.addObserver(make_stdout_observer(show_source=False, format=logformat)) log_publisher.addObserver(make_stderr_observer(show_source=False, format=logformat)) elif loglevel == "debug": # Print debug+info to stdout, warn+ to stderr, with the class # source log_publisher.addObserver(make_stdout_observer(show_source=True, format=logformat)) log_publisher.addObserver(make_stderr_observer(show_source=True, format=logformat)) elif loglevel == "trace": # Print trace+, with the class source log_publisher.addObserver(make_stdout_observer(show_source=True, format=logformat, trace=True)) log_publisher.addObserver(make_stderr_observer(show_source=True, format=logformat)) else: assert False, "Shouldn't ever get here." # Actually start the logger. start_logging()