Skip to main content

Memfault compact log utilities

Project description

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

Project details


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.

Supported by

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