Skip to content
This repository has been archived by the owner on Mar 16, 2023. It is now read-only.
/ lognestmonster Public archive

A general-purpose single-header C logging library and parser for event-based logs. **Unusable and no longer in development.**

License

Notifications You must be signed in to change notification settings

JoshuaS3/lognestmonster

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

(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:

// 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.

Copyright

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.

About

A general-purpose single-header C logging library and parser for event-based logs. **Unusable and no longer in development.**

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published