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

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mflt_compact_log-0.2.1.tar.gz (15.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mflt_compact_log-0.2.1-py3-none-any.whl (16.1 kB view details)

Uploaded Python 3

File details

Details for the file mflt_compact_log-0.2.1.tar.gz.

File metadata

  • Download URL: mflt_compact_log-0.2.1.tar.gz
  • Upload date:
  • Size: 15.3 kB
  • Tags: Source
  • Uploaded using 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}

File hashes

Hashes for mflt_compact_log-0.2.1.tar.gz
Algorithm Hash digest
SHA256 f81812f0a72ad3fbd68e52423addd58c56d030bb9b13b1aa3d4602e3f5fa73bc
MD5 10221c287b8a3d46b19430b37b79dc53
BLAKE2b-256 034c4c3839a3aaac74528a9f4ebf97696b1a2984b7844a6333622ea2982daa91

See more details on using hashes here.

File details

Details for the file mflt_compact_log-0.2.1-py3-none-any.whl.

File metadata

  • Download URL: mflt_compact_log-0.2.1-py3-none-any.whl
  • Upload date:
  • Size: 16.1 kB
  • Tags: Python 3
  • Uploaded using 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}

File hashes

Hashes for mflt_compact_log-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 37fc2e19373bdf320372afdca6a461fa3cf2d4d1fbb45d71bef9f7eea09fd7f6
MD5 efa2e281f3a69edaf111318a25969fb9
BLAKE2b-256 7ac101129d48b7e3c586e3ff0a971d454c05ddee4448ac58d085d0eca8261787

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.2.1 This release

2 files

0.1.1

2 files

0.0.5

2 files

0.0.4

2 files

0.0.3

2 files

0.0.2

2 files

0.0.1

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page