pytweezer.servers.logger_server module

Generic logger launcher — the CONFIG["Loggers"] counterpart to device_server.py.

Each logger in CONFIG["Loggers"] is a background worker that reads a data source and pushes values into InfluxDB. Rather than give every logger its own argparse + config-reading boilerplate, this module provides a single launcher:

  • pytweezer-logger <logger_name> (console script) — start one logger.

  • The logger manager launches the same thing: each logger’s script in the config points here, so ProcessTile runs python logger_server.py <name>.

Adding a new logger instance means only editing config.py. Adding a new logger type means writing a Logger subclass and adding one factory to LOGGER_REGISTRY. Subclasses are imported lazily inside their factory so a broken/optional logger never breaks importing this launcher.

pytweezer.servers.logger_server.LOGGER_REGISTRY = {'ni_adc': <function _make_ni_adc>}

Maps a logger’s "logger" config key to the factory that builds it.

pytweezer.servers.logger_server.build_logger(name, conf=None)[source]

Return the Logger instance for the logger named name.

The logger’s "logger" key selects the factory in LOGGER_REGISTRY.

pytweezer.servers.logger_server.main()[source]
pytweezer.servers.logger_server.resolve_logger(name)[source]

Return (canonical_name, conf) for name in CONFIG["Loggers"].

Matches the config key exactly first, then whitespace-/case-insensitively so command-line callers can pass rblaserlogger for "Rb Laser Logger". Raises KeyError listing the available loggers if nothing matches.

pytweezer.servers.logger_server.run_logger(name)[source]

Build and run the logger named name (blocks until interrupted).