🍺 BREW Explorer

← all formulae

g3log

brew install g3log v2.6 Unlicense

Asynchronous, 'crash safe', logger that is easy to use

1
30-day installs · #16916
1
90-day · #22439
21
365-day · #13997
956
★ GitHub stars · updated 5mo ago

Build dependencies

GitHub topics

async asynchronous c-plus-plus crash-reporting crash-safe logger logging public-domain

Links

Raw metadata
{
  "aliases": [],
  "alternatives": [],
  "build_dependencies": [
    "cmake"
  ],
  "categories": [],
  "caveats": null,
  "conflicts_with": [],
  "dependencies": [],
  "deprecated": 0,
  "deprecation_reason": null,
  "desc": "Asynchronous, \u0027crash safe\u0027, logger that is easy to use",
  "disable_reason": null,
  "disabled": 0,
  "enrichment_fetched_at": "2026-06-20T23:37:53+00:00",
  "first_seen": "2026-06-20T23:34:18+00:00",
  "full_name": "g3log",
  "github_default_branch": "master",
  "github_last_commit_at": "2026-03-19T22:55:22Z",
  "github_readme_excerpt": "**Scanning Update**: [![ci/action CodeQL](https://github.com/KjellKod/g3log/actions/workflows/codeql-analysis.yml/badge.svg)](https://github.com/KjellKod/g3log/actions/workflows/codeql-analysis.yml)\n\n\n# Contents \n[**introduction**](docs/index.md) | [detailed information](docs/g3log_usage.md) | [Configure \u0026 Build](docs/building.md) | [API description](docs/API.md) | [Custom log formatting](docs/API_custom_formatting.md)\n\n\n# Welcome to g3log\n### Use [kjellkod.github.io/g3log/](https://kjellkod.github.io/g3log/) for best reading / searching / navigating of g3log\u0027s documentation\n\nG3log is an asynchronous logger with three main features: \n1. Intuitive `LOG(...)` API\n2. `Design-by-contract` `CHECK(...)` functionality\n3. Fatal crash handling for graceful shutdown of the logged process without loosing any log details up to the point of the crash.\n\nThe super quick introduction to g3log can be seen in the steps 1 - 9 below. \n\nFor more in-depth information please see the full usage description in [g3log_usage.md](docs/g3log_usage.md). If you want to understand better the internals of g3log, then plase look at the [API.md](docs/API.md) for both high-level and deep-dive insights. \n\n\n## Experiment and try-out g3log in Github Codespaces \nref: [codespaces.md](docs/codespaces.md)\n\n\n## 1. Easy usage in files\nAvoid deep dependency injection complexity and instead get access to the logger as easy as:\n```\n#include \u003cg3log/g3log.hpp\u003e\n``` \n\n\n## 2. Access to streaming and print_f log call syntax\nBoth streaming syntax `LOG` and print_f `LOGF` syntax are available:\n\n```\nLOGF(INFO, \"Hi log %d\", 123);\nLOG(INF) \u003c\u003c \"Hi log \" \u003c\u003c 123;\n\n```\n\n## 3. Conditional logging\n\n```\nLOG_IF(INFO, (1 \u003c 2)) \u003c\u003c \"If true this message will be logged\";\nLOGF_IF(INFO, (1 \u003c 2), \"If true, then this %s will be logged\", \"message\");\n```\n\n## 4. Design-by-contract framework \n```\nCHECK(less != more); // not fatal\nCHECK_F(less \u003e more, \"CHECK(false) will trigger a fatal message\")\n```\n\n## 5. Handling of fatal \nBy default g3log wi",
  "github_repo": "KjellKod/g3log",
  "github_stars": 956,
  "github_topics": [
    "async",
    "asynchronous",
    "c-plus-plus",
    "crash-reporting",
    "crash-safe",
    "logger",
    "logging",
    "public-domain"
  ],
  "homepage": "https://github.com/KjellKod/g3log",
  "homepage_og_description": null,
  "homepage_og_image": null,
  "homepage_title": null,
  "installs_30d": 1,
  "installs_365d": 21,
  "installs_90d": 1,
  "keg_only": 0,
  "keg_only_reason": null,
  "last_seen": "2026-06-20T23:34:18+00:00",
  "license": "Unlicense",
  "llm_generated_at": null,
  "llm_model": null,
  "name": "g3log",
  "oldnames": [],
  "one_liner": null,
  "optional_dependencies": [],
  "rank_30d": 16916,
  "rank_365d": 13997,
  "rank_90d": 22439,
  "raw_hash": "5c2359bdb10a3f1c",
  "recommended_dependencies": [],
  "revision": 0,
  "ruby_source_path": "Formula/g/g3log.rb",
  "tap": "homebrew/core",
  "test_dependencies": [],
  "uses_from_macos": [],
  "version_head": null,
  "version_stable": "2.6",
  "versioned_formulae": [],
  "why_use_this": null
}