Skip to main content

Memfault Compact Log Library

This library enables decoding Memfault-flavored compact logs. For background information on compact logs, see here:

https://mflt.io/compact-logs

Usage

Some brief usage information below. See the source for detailed usage.

Extracting compact log format strings from .elf

To extract the format strings from the symbol file:

from mflt_compact_log.log_fmt import LogFormatElfSectionParser

elf = "path to elf file"
# parse the elf file
mappings = LogFormatElfSectionParser.get_mapping_from_elf_file(elf)
# 'mappings' is a dictionary mapping log id to LogFormatInfo data
print(mappings)

>>> {8: LogFormatInfo(filename='./main/console_example_main.c', line=245, n_args=0, fmt='This is a compact log example')}

Decoding compact logs

To apply the format string to raw compact log data:

from mflt_compact_log import CompactLogDecoder

# example format string; this could instead be retrieved from the elf file
fmt = "An Integer Format String: %d"

# compact log hex encoded raw data
compact_log = "820A0B"

# decode the log!
compact_log_as_bytes = bytes.fromhex(compact_log)
log = CompactLogDecoder.from_cbor_array(fmt, compact_log_as_bytes)
log.decode()
>>> 'An Integer Format String: 11'

Changes

[0.2.1] - 2026-01-20

  • Add project description to pyproject.toml

[0.2.0] - 2025-11-17

  • Remove support for Python < 3.10

  • Remove click dependency

  • Add support for Truncated Compact Log entries

  • The command line tools, mflt-compact-log.log_fmt and mflt-compact-log.decode_compact_log, have been moved into subcommands under mflt-compact-log:

    • mflt-compact-log log-fmt
    • mflt-compact-log decode

    See mflt-compact-log --help for details.

[0.1.1] - 2024-11-14

  • Fix some missing dependencies that are required as of the 0.1.0 release.

[0.1.0] - 2024-11-08

  • Replace the wasmer-based decoder with a pure Python implementation

[0.0.5] - 2024-08-29

  • Improve the output of mflt-compact-log.log_fmt for log format strings containing non-printable characters

[0.0.4] - 2024-06-13

[0.0.3] - 2024-01-30

0.0.2

  • support Python 3.9 and 3.10
  • update prettytable dependency from 0.7.2 to 3.4.1
  • update pyelftools dependency from ^0.28.0 to ^0.29.0

Release files for mflt-compact-log 0.2.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for mflt-compact-log 0.2.1
File Size Uploaded
mflt_compact_log-0.2.1.tar.gz 15.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for mflt-compact-log 0.2.1
File Interpreter ABI Platform
mflt_compact_log-0.2.1-py3-none-any.whl Python 3 none any Details

Total release size: 31.4 kB

Release files / mflt_compact_log-0.2.1.tar.gz

Download URL mflt_compact_log-0.2.1.tar.gz
Size 15.3 kB
Tags Source
SHA-256 checksum
How to use checksums
f81812f0a72ad3fbd68e52423addd58c56d030bb9b13b1aa3d4602e3f5fa73bc
BLAKE2b-256 checksum
How to use checksums
034c4c3839a3aaac74528a9f4ebf97696b1a2984b7844a6333622ea2982daa91
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.9.18 {"installer":{"name":"uv","version":"0.9.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"25.10","id":"questing","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / mflt_compact_log-0.2.1-py3-none-any.whl

Download URL mflt_compact_log-0.2.1-py3-none-any.whl
Size 16.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
37fc2e19373bdf320372afdca6a461fa3cf2d4d1fbb45d71bef9f7eea09fd7f6
BLAKE2b-256 checksum
How to use checksums
7ac101129d48b7e3c586e3ff0a971d454c05ddee4448ac58d085d0eca8261787
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.9.18 {"installer":{"name":"uv","version":"0.9.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"25.10","id":"questing","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release history Release notifications | RSS feed

This release

0.2.1 This release

2 release files

0.1.1

2 release files

0.0.5

2 release files

0.0.4

2 release files

0.0.3

2 release files

0.0.2

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page