ENDVREndeavor Firmware Library

EFL Logging Starter Kit

Give your firmware
a useful log.

Explore an embedded logging library in C. Four free modules, source included, with a working Windows example and the instructions to make it yours.

We'll email you the download link.
No account. No newsletter signup. No checkout. Free for commercial product use. · How we use your request.

demo.log / captured from the example
$ bin\efl-demo.exe demo.log [20260929-12:00:00] [INFO] [boot] controller-17 ready; device_id=17 [20260929-12:00:00] [INFO] [sensor] sample temperature=28.5 C (simulated) [20260929-12:00:00] [WARN] [sensor] sample retry requested (simulated) DEBUG filter: PASS File records: 3; file failures: 0

Actual host-demo content, wrapped for display.
Fixed UTC clock · simulated readings

4 featured modules + Core includedC source you can inspectHost example you can run

The useful parts,
together.

Follow a record from a device label to a timestamped message and a file. Each module has a clear part in the example.

01 / OUTPUT

Log

Levels, categories, and callbacks for the destinations you choose.

02 / INPUT

Strings

Bounded copying, trimming, parsing, and conversion helpers.

03 / CONTEXT

Time

UTC formatting and time interfaces. Supply your clock.

04 / STORAGE

File

A file interface with selectable backends. Try host stdio first.

Core provides the shared foundation. All required EFL modules for this example are in the download.

Start with a working record.

No board setup for the first walkthrough. The included demo runs on Windows x64.

1

Extract the kit.

Keep the files together in a writable folder. Source and reference guides are included.

2

Run the example.

Open Run-Demo.cmd. The terminal shows the records, filtering result, and file status.

3

Read the output.

Open demo.log, then example/logging_demo.c. Find the callbacks you will replace.

Prefer a source build? A MinGW-w64 GCC build script and logging regression test are included. Compiler not bundled.

The detail that matters

A log call succeeded.
Did the file get written?

The example gives file output its own checked callback. Try a path inside a missing directory and see the failure reported while terminal output continues.

Read the C logging tutorial: from message to file →

Submission and storage are separate.

A successful log submission does not confirm a successful file write. The example checks open, write, flush, and close results, then records its own output status.

The repeatable failure case tests file open failure. It does not simulate every storage failure or prove power-loss durability.

A few things to know.

Do I have to subscribe to get the kit?

No. Enter your email and we will send the download link. This does not create an account or subscribe you to a newsletter.

Do I need ThreadX or the paid Console module?

No. The included example uses the host stdio backend and ordinary output callbacks. Optional adapters have additional requirements and are not enabled in this build.

What has been tested?

The Windows x64 host build, the existing logging regression, normal demo output, DEBUG filtering, and a missing-directory failure case. Target MCU, RTOS, Linux, and macOS behavior have not been validated for this release.

How do I use it in firmware?

Begin with the example and its build configuration. Replace the fixed clock, select your output callbacks and file backend, and validate the resulting configuration on your target. The README explains the boundaries.

What are the release terms?

EFL Source License 1.0 allows modification and commercial product shipment, including with EFL unchanged. Your own product source may remain proprietary. Standalone sales of unchanged or trivially modified EFL source are restricted; source sales of substantially improved derivatives are permitted under the license. Third-party terms remain in effect. Read the full license.