Exemplo n.º 1
0
    def _setup_logging(self):
        config_ctrl = self.config["controlserver"]

        logfile = os.path.join(
            config_ctrl["log_path"],
            config_ctrl["log_name"].format(bl=self.beamline))

        utils.check_writable(logfile)

        # Get queue
        self.log_queue = Queue(-1)

        handler = utils.get_log_handlers(logfile, config_ctrl["log_size"],
                                         config_ctrl["verbose"],
                                         config_ctrl["onscreen"])

        # Start queue listener using the stream handler above
        self.log_queue_listener = utils.CustomQueueListener(
            self.log_queue, *handler)

        self.log_queue_listener.start()

        # Create log and set handler to queue handle
        self.log = utils.get_logger("ControlServer", self.log_queue)
        self.log.info("Init")
Exemplo n.º 2
0
    def _setup_logging(self):
        config_gen = self.config["general"]

        # Get queue
        self.log_queue = multiprocessing.Queue(-1)

        handler = utils.get_log_handlers(config_gen["log_file"],
                                         config_gen["log_size"],
                                         config_gen["verbose"],
                                         config_gen["onscreen"])

        # Start queue listener using the stream handler above.
        self.log_queue_listener = utils.CustomQueueListener(
            self.log_queue, *handler)

        self.log_queue_listener.start()

        # the least sever log level to forward to the queuelistener
        file_log_level = "debug" if config_gen["verbose"] else "error"
        if config_gen["onscreen"]:
            self.log_level = utils.get_least_sever_log_level(
                log_levels=(config_gen["onscreen"], file_log_level))
        else:
            self.log_level = file_log_level

        # Create log and set handler to queue handle
        self.log = utils.get_logger(self.__class__.__name__,
                                    queue=self.log_queue,
                                    log_level=self.log_level)
        self.log.info("Setting process log level to '%s'", self.log_level)
Exemplo n.º 3
0
    def _setup_logging(self):
        config_gen = self.config["general"]

        # enable logging
        root = logging.getLogger()
        root.setLevel(logging.DEBUG)

        handlers = utils.get_log_handlers(config_gen["log_file"],
                                          config_gen["log_size"],
                                          config_gen["verbose"],
                                          config_gen["onscreen"])

        if isinstance(handlers, tuple):
            for hdl in handlers:
                root.addHandler(hdl)
        else:
            root.addHandler(handlers)

        self.log = logging.getLogger("DataReceiver")
Exemplo n.º 4
0
def main():
    # see https://docs.python.org/2/library/multiprocessing.html#windows
    freeze_support()

    config = {
        "log_file": os.path.join(BASE_DIR, "logs", "test_logging.log"),
        "log_size": 10485760,
        "verbose": True,
        "onscreen": "debug"
    }

    # Get queue
    log_queue = Queue(-1)

    handler = utils.get_log_handlers(
        config["log_file"],
        config["log_size"],
        config["verbose"],
        config["onscreen"]
    )

    # Start queue listener using the stream handler above.
    log_queue_listener = utils.CustomQueueListener(
        log_queue, *handler
    )

    log_queue_listener.start()

    # Create log and set handler to queue handle
    log = utils.get_logger("TestLogging", log_queue)

    log.debug("START")

    while True:
        log.debug("run")
        time.sleep(1)
Exemplo n.º 5
0
def argument_parsing():
    default_config = os.path.join(CONFIG_DIR, "nexusReceiver.conf")

    # ------------------------------------------------------------------------
    # Get command line arguments
    # ------------------------------------------------------------------------

    parser = argparse.ArgumentParser()

    parser.add_argument("--config_file",
                        type=str,
                        help="Location of the configuration file")

    parser.add_argument("--log_path",
                        type=str,
                        help="Path where logfile will be created")
    parser.add_argument("--log_name",
                        type=str,
                        help="Filename used for logging")
    parser.add_argument("--log_size",
                        type=int,
                        help="File size before rollover in B (linux only)")
    parser.add_argument("--verbose",
                        help="More verbose output",
                        action="store_true")
    parser.add_argument("--onscreen",
                        type=str,
                        help="Display logging on screen "
                        "(options are CRITICAL, ERROR, WARNING, "
                        "INFO, DEBUG)",
                        default=False)

    parser.add_argument("--whitelist",
                        type=str,
                        help="List of hosts allowed to connect")
    parser.add_argument("--target_dir",
                        type=str,
                        help="Where incoming data will be stored to")
    parser.add_argument("--data_stream_ip",
                        type=str,
                        help="Ip of dataStream-socket to pull new files from")
    parser.add_argument("--data_stream_port",
                        type=str,
                        help="Port number of dataStream-socket to pull new "
                        "files from")

    arguments = parser.parse_args()
    arguments.config_file = arguments.config_file \
        or default_config

    # check if config_file exist
    utils.check_existence(arguments.config_file)

    # ------------------------------------------------------------------------
    # Get arguments from config file
    # ------------------------------------------------------------------------

    params = utils.set_parameters(base_config_file=arguments.config_file,
                                  config_file=None,
                                  arguments=arguments)

    if params["whitelist"] is not None and type(params["whitelist"]) == str:
        params["whitelist"] = utils.execute_ldapsearch(logging,
                                                       params["whitelist"],
                                                       params["ldapuri"])

    # ------------------------------------------------------------------------
    # Check given arguments
    # ------------------------------------------------------------------------

    logfile = os.path.join(params["log_path"], params["log_name"])

    # enable logging
    root = logging.getLogger()
    root.setLevel(logging.DEBUG)

    handlers = utils.get_log_handlers(logfile, params["log_size"],
                                      params["verbose"], params["onscreen"])

    if type(handlers) == tuple:
        for h in handlers:
            root.addHandler(h)
    else:
        root.addHandler(handlers)

    # check target directory for existence
    utils.check_existence(params["target_dir"])

    # check if logfile is writable
    params["log_file"] = os.path.join(params["log_path"], params["log_name"])
    utils.check_writable(params["log_file"])

    return params