kivra/jsonformat
54.1
Weak · 17 September 2026
354
lines of production code
Erlang
primary language
1
measurement over time
What this system is
This system is an Erlang/OTP application that provides a custom JSON log formatter for the standard OTP logger. It enables structured, single-line JSON output with configurable key mapping, custom format callbacks, and precise timestamp formatting. The project includes build automation via Makefile and comprehensive documentation for configuration and contribution.
Features
Initial release of JSON log formatter for Erlang OTP Logger
This change introduces the jsonformat application, a custom formatter for the Erlang OTP logger that outputs single-line JSON logs. It provides configurable key mapping, custom format functions (callbacks), and control over line endings (Unix, Windows, Mac). The formatter handles various data types including atoms, binaries, PIDs, ports, and MFA tuples, converting them to JSON-safe representations. It also supports formatting timestamps in ISO 8601 format with microsecond or nanosecond precision.
src · high confidence
Behavioural changes
Add structured JSON logging configuration
The application now uses a new \sys.config\ file to configure the Erlang/OTP logger. This change switches the default log handler to output structured JSON format (via \jsonformat\) instead of the default plain text, and sets the global log level to \info\.
config · high confidence
Housekeeping
Initial project scaffolding and documentation
The repository has been initialized with core project files, including a Makefile for build and test automation, a rebar.config defining Erlang/OTP 27+ requirements and erlfmt formatting, and a .gitignore. Comprehensive documentation has been added via README.md (covering configuration options like line endings and metadata filtering), CONTRIBUTING.md (establishing a Code of Conduct), and SECURITY.md (outlining vulnerability reporting procedures).
(repo-wide) · 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 54.
Lenses
- Code Health 100
- Architecture 69
- Maturity 48
- Readiness 46
- Security 71
Changes since last survey
- 42 commits — 34 feature/other, 8 fixes
By area
- (root) — 20 commits
- .github/workflows — 10 commits
- src/jsonformat.erl — 9 commits
- (repo) — 3 commits
Notable commits
- fix: Fix CI
- fix: fix: Format lists and binaries with non-UTF8 values (#28)
- fix: fix: Prettify some output such as MFA, port, pid
- fix: fix: Use io_lib:format/2 instead of term_to_binary
- fix: fix: Wrong nanosecond format (#14)
- fix: fix: deal with lists of maps for nested json (#12)
- fix: fix: remove jiffy
- fix: no-release: fix: Add renovate.json (#17)
- change: Add automatic formatting
- change: Cache PLT
- change: Initial commit
- change: Initial commit
- change: Loosen jsx version requirement
- change: Merge pull request #16 from kivra/msn-some-improvements
- change: Merge pull request #24 from kivra/modernize-ci-pipe
- change: Merge pull request #25 from kivra/checkout-code-before-release
- change: Minimal gitignore
- change: Remove inline editor config
- change: Remove rebar2 referenser from gitignore
- change: chore(deps): update mathieudutour/github-tag-action action to v6 (#23)
- …and 22 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
kivra/jsonformat 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 ae98893a53d2b226732b495cc1ff7f5ca1ea8e41 — the exact code this score is about.
- Scored under rubric-2026.09.12 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-f94092f054c1.