Skip to content
CAI
Software that uses CAICheck a score

lfex/logjam

62.2

Adequate · 17 September 2026

364

lines of production code

Erlang

primary language

1

measurement over time

CAI band scale
CAI lens gauges

What this system is

Logjam is an LFE library that provides logging macros and a custom OTP formatter for generating human-readable, colored terminal output. It supports structured logging with configurable templates and environment-specific settings, packaged for easy distribution via Hex. The system includes a demo application and command-line scripts to facilitate testing and usage demonstration.

Features

Added logjam.hrl include file with logging macros and ANSI color definitions

The new include file logjam.hrl provides a set of convenience macros for logging at various levels (emergency, alert, critical, error, warning, notice, info, debug) and a generic log macro, all adapted from the Erlang kernel logger for use in LFE. It also defines ANSI color codes for terminal output and utilizes LFE 2.0's FUNCTION\_NAME and FUNCTION\_ARITY features to capture location metadata. The file includes internal helper macros and a display-only function for REPL usage.

include · high confidence

Command-line demo script with configuration support

A new shell script (scripts/demo.lfe) allows users to run the demo application directly from the command line by providing a configuration file path as an argument. The script initializes the configuration via logjam and then executes the demo logic, providing a simple interface for testing or demonstration purposes.

scripts · high confidence

Behavioural changes

Library renamed from flatlog to logjam with enhanced formatting and demo

The library has been renamed from flatlog to logjam. The new version includes a custom OTP logger formatter (logjam\_formatter) that supports colored output, configurable templates, and structured logging examples. A new demo module (logjam-demo) is provided to showcase the logging macros and API usage. The old flatlog module and application source have been removed.

src · high confidence

Project renamed to logjam with updated LFE dependencies and demo support

The project has been renamed from flatlog to logjam, reflecting a shift in focus from a generic logger formatter to a library providing LFE logging macros and human-readable output. The dependency on LFE has been updated to version 2.2, and the rebar3 configuration now includes the rebar3\_lfe plugin and hex publishing support. A new Makefile and rebar3 aliases have been added to facilitate running a demo application and publishing to Hex, while sample configuration files have been moved to the priv directory to ensure they are included in releases.

(repo-wide) · high confidence

Standardized logging configuration and included sample configs in releases

The application now ships with standardized, environment-specific logging configurations (dev, info, notice, prod) located in priv/config, ensuring consistent log formatting via the logjam formatter across different deployment modes. Additionally, sample configuration files have been moved to the priv directory to guarantee they are included in release artifacts, and a documentation redirect page has been added to guide users to the main project documentation.

priv · high confidence

Test coverage

Renamed test suite from flatlog to logjam and added new test coverage

The test suite has been renamed from flatlog to logjam, with the property-based tests moved to prop\_logjam.erl and the Common Test suite updated to logjam\_SUITE.erl. Several existing property tests (prop\_map\_keys, prop\_nested\_map\_keys, prop\_meta, prop\_string\_printable, prop\_string\_quotable) have been commented out with FIXME markers, indicating they are currently broken or require further work. New test cases have been added to logjam\_SUITE.erl to cover unstructured log formatting and colored output support, expanding the test coverage for these specific features.

test · high confidence

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

How this codebase got here

Baseline

  • First survey — no prior run to compare against. CAI 62.

Lenses

  • Code Health 95
  • Architecture 69
  • Maturity 50
  • Readiness 64
  • Security 100

Changes since last survey

  • 85 commits — 80 feature/other, 5 fixes

By area

  • (root) — 41 commits
  • .github/workflows — 14 commits
  • src/logjam.app.src — 7 commits
  • config/dev.config — 3 commits
  • include/logjam.hrl — 3 commits
  • priv/config — 3 commits
  • src/logjam.erl — 3 commits
  • (repo) — 2 commits
  • src/logjam-demo.lfe — 2 commits
  • priv/html — 1 commit
  • priv/images — 1 commit
  • src/flatlog.app.src — 1 commit
  • src/flatlog.erl — 1 commit
  • src/logjam_demo.erl — 1 commit
  • src/logjam_formatter.erl — 1 commit
  • test/logjam_SUITE.erl — 1 commit

Notable commits

  • fix: Another fix.
  • fix: Docs fix.
  • fix: Fixed config ordering and var names.
  • fix: Fixed configuration example (logging level as well as formatting).
  • fix: Fixed up includes; added some aliases.
  • change: Add note on release configs and relx
  • change: Added Erlang 26 to CI/CD.
  • change: Added Erlang demo.
  • change: Added a structured example to the demo.
  • change: Added an 'About' section.
  • change: Added config functions and updated demo to use.
  • change: Added demo to CI/CD.
  • change: Added doc redirect.
  • change: Added excludes.
  • change: Added final include function for in-REPL display purposes.
  • change: Added include.
  • change: Added more convenience configs.
  • change: Added support for convenience setups.
  • change: Added support for github actions.
  • change: Added support for publishing docs w/hex.
  • …and 65 more

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

Survey your own repository

lfex/logjam was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.

About this page

  • The score is its most recent published measurement, taken on 17 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
  • Measured at commit f8f5e14c953511019afad7261cfb4f56d3d3dc9b — the exact code this score is about.
  • Scored under rubric-2026.09.13 — the same rubric and the same method as every other entry in this index.
  • Measured by watchdog.canine.dev using codehealth-analyzer preprod-d1ef6c0bd534.