(WIP) A lightweight C logging library and parser for event-oriented logs.
Lognestmonster is a general-purpose single-header C logging library that
pertains a number of features:
* Nested/layer-based logging capabilities
* Event-oriented log compilation
* Multiple queues or outputs
* Full developer customizability on memory allocation
* Preprocessor handles to incorporate non-standard memory functions
* Full developer customizability on I/O redirection
* Generic filesystem log output
* End-to-end `stdout` and `stdin` piping, allowing data transfer over serial,
socket, or anything else
* A binary format lighter than plaintext
* A feature-packed but comprehensive standalone deserializer/parser
* Interactive textual UI (ncurses)
* Logtree filtering/sorting and navigation
* Data operations such as binary to plaintext conversions and custom hooks on
user-defined events
* Optional daemon for hook events
* Full developer customizability on data display, program controls, and hook
operations
_**(WIP)** Not yet meant for development or production use_
## Performance at Different Optimization Levels
Output of `./test performance` as of commit `b54160c`:
Optimization Level | Header Binary Size\* (in bytes) | Unit Test Runtime\*\* (in µs)
------------------ | ------------------------------- | -----------------------------
-O0 | 22552 | 70
-O1 | 18424 | 67
-O2 | 22520 | 69
-O3 | 26760 | 68
-Os | 18424 | 69
\*Header binary size is measured by compilation of the following source file:
```c
// tests/header_only.c
#define LNM_INIT
#include "lognestmonster.h"
int main(void) {
return 0;
}
```
\*\*Median taken from 200 trials run in sequence to account for variable processor
conditions and behaviors. Run on a mid-tier 3.3GHz processor (i5-4590). Runtime
is measured by the execution and output of [the header's unit
test](tests/header_unit.c).
## Copyright
This package is copyrighted by [Joshua 'joshuas3'
Stockin](https://joshstock.in/) and licensed under the [MIT License](LICENSE).
A form of the following should be present in each major library source or header
file.
```txt
lognestmonster Copyright (c) 2020 Joshua 'joshuas3' Stockin