• Julien Muchembled's avatar
    Review logging to keep all debugging information in RAM and flush only if useful · 1fce5cc4
    Julien Muchembled authored
    The main goal of this patch is to keep all DEBUG logs and packet logger enabled
    without exploding disk usage.
    This is done by keeping the last 16 MB (by default) of debugging information in
    a RAM buffer, and to emit it to an SQLite DB upon RTMIN signal or in case of
    warning and more severe log.
    
    Implementation is also cleaned up for better integration within a framework
    or if run standalone. NEO logger is now a direct child of root handler.
    Only warnings and more severe logs are forwarded to root handler.
    
    A new script 'neolog' is added to pretty-print the contents of the SQLite log.
    
    In unit tests, logging events are not buffered but emitted immediately.
    When a test passes, payloads of all exchanged packets are discarded to reduce
    disk usage on test bots.
    
    This slows down performance tests by about 15 % because even if nothing is
    written to disk, debug and packet log records are now always rendered.
    1fce5cc4
testStorage.py 19.7 KB