Operational tips and caveats

Updated Nov 11, 2025
  • Always flush or close handlers before shutting down the process; otherwise buffered records may be lost.
  • Monitor logger.get_dropped() and the warnings emitted by each handler to detect back pressure early. Increase handler capacities or switch to blocking/timeout policies when drops are unacceptable.
  • File-based handlers count flush_interval in records. If you need time-based flushing, add a periodic handler.flush() in your application.
  • Blocking overflow policies affect the thread that calls logger.log(). Use them only when you are comfortable with logging back pressure slowing the producer because that is what will happen.
  • Socket handlers serialize to MessagePack with a one-megabyte default frame limit. Large payloads are silently dropped; consider truncating or chunking messages before logging.
  • reset_manager() is a destructive operation intended for tests. Do not call it while other threads might still hold references to existing loggers.

Keep an eye on the roadmap in docs/ for upcoming additions (formatter resolution, richer dictConfig support, timed rotation) and update your configuration once those features land. For now, the patterns above reflect the current, tested surface area of femtologging.