libLogit

Getting Started With LOGIT

The libLogit model is intentionally small:

  1. Create a LOGIT.
  2. Set where it writes.
  3. Set the minimum level.
  4. Call it to log.

The exact constructor and call syntax varies by language. The portable contract does not.

Canonical Shape

LOGIT LogIT = []
LogIT.outputDirectory = "logs"
LogIT.localPath = "logs/app.log"
LogIT.level = DEBUG

LogIT(INFO) << "service started"

Use outputDirectory when a binding supports directory mode and should derive the final file name from the logger name. Use localPath when the application needs an exact file path.

Python

from liblogit import DEBUG, INFO, LOGIT, ENDL

LogIT = LOGIT()
LogIT.localPath = "logs/python-app.log"
LogIT.level = DEBUG

LogIT(INFO) << "service started" << ENDL

Structure-fed setup:

from liblogit import INFO, LOGIT

LogIT = LOGIT({
    "name": "AppLog",
    "localPath": "logs/python-app.log",
    "level": "debug",
    "format": "json",
})

LogIT.log(INFO, {"event": "service_started"})

C++

#include <liblogit/logit.hpp>

int main() {
    auto LogIT = liblogit::LOGIT{};
    LogIT.localPath = "logs/cpp-app.log";
    LogIT.level = liblogit::Level::DEBUG;

    LogIT(liblogit::Level::INFO) << "service started";
}

C

#include <liblogit/logit.h>

int main(void) {
    liblogit_logit LogIT = liblogit_logit_default();
    liblogit_logit_set_output_directory(&LogIT, "logs");
    liblogit_logit_set_level(&LogIT, LIBLOGIT_DEBUG);

    liblogit_builder builder = liblogit_logit_at(&LogIT, LIBLOGIT_INFO);
    liblogit_builder_append(&builder, "service started");
    liblogit_builder_commit(&builder);
}

C#

using LibLogit;

var LogIT = new Logit();
LogIT.OutputDirectory = "logs";
LogIT.Level = Level.Debug;

LogIT.At(Level.Info).Append("service started").Commit();

Java

import dev.liblogit.Logit;

class App {
    public static void main(String[] args) {
        Logit LogIT = new Logit();
        LogIT.setOutputDirectory("logs");
        LogIT.level = Logit.Level.DEBUG;

        LogIT.at(Logit.Level.INFO).append("service started").commit();
    }
}

JavaScript

const { LOGIT, levels } = require("../../languages/javascript/src/liblogit");

const LogIT = new LOGIT();
LogIT.outputDirectory = "logs";
LogIT.level = levels.DEBUG;

LogIT.at(levels.INFO).append("service started").commit();

Go

package main

import "github.com/asparks1987/liblogit/languages/go/liblogit"

func main() {
    LogIT := liblogit.New()
    LogIT.SetOutputDirectory("logs")
    LogIT.Level = liblogit.Debug

    _ = LogIT.At(liblogit.Info).Append("service started").Commit()
}

Kotlin

import dev.liblogit.KotlinLogit

fun main() {
    val LogIT = KotlinLogit()
    LogIT.outputDirectory = "logs"
    LogIT.level = "debug"

    (LogIT.at("info") shl "service started").commit()
}

Next Step

For complete setup rules, level names, sink behavior, local database storage, and troubleshooting, continue with Developer instructions.