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
- https://github.com/KjellKod/g3log
- GitHub: KjellKod/g3log
- Brew formula source: Formula/g/g3log.rb
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**: [](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
}