(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
andstdin
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
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:
// 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.
This package is copyrighted by Joshua 'joshuas3' Stockin and licensed under the MIT License.
A form of the following should be present in each major library source or header file.
lognestmonster Copyright (c) 2020 Joshua 'joshuas3' Stockin
<https://joshstock.in>
<https://github.com/JoshuaS3/lognestmonster>
This software is licensed under the MIT License.