How it works
- 1
Paste log lines from the source you are sending to Datadog.
- 2
LogForge maps each detected field onto a documented Datadog matcher and emits one `logforge_rule …` parsing rule, escaping structural braces and `%` in the literal text.
- 3
Paste the rule into a Grok Parser processor in your Datadog log pipeline and use the built-in test pane to confirm the fields parse.
Detection and generation run entirely as JavaScript in your browser — there is no parsing server, and your log lines are never uploaded. See the privacy page to verify it with the Network tab.
Example: Datadog Grok Parser rule from an nginx line
These two nginx access lines are fed verbatim into the engine, and the Datadog tab produces the Datadog config below — the same output you get by pasting your own lines.
203.0.113.45 - - [03/Jul/2026:14:22:15 +0300] "GET /api/health HTTP/1.1" 200 2 "-" "kube-probe/1.29"
198.51.100.23 - - [03/Jul/2026:14:22:19 +0300] "POST /login HTTP/1.1" 401 231 "https://example.com/" "Mozilla/5.0 (X11; Linux x86_64; rv:126.0) Gecko/20100101 Firefox/126.0" LogForge generates:
logforge_rule %{ipv4:ip1} - - \[%{date("dd/MMM/yyyy:HH:mm:ss Z"):timestamp}\] "%{word:method} %{notSpace:path} HTTP/1\.1" %{integer:status} %{number:number} "%{notSpace:url}" "%{data:user_agent} - note emitted rule name is "logforge_rule"; rename it to match your "nginx" convention if desired
- note constant field "quoted_string" embedded as literal anchor "HTTP/1.1" (varying=false)
- note paste this line into a Grok Parser processor in a Datadog Log Pipeline; matchers are anchored left-to-right and rule whitespace matches log whitespace. Complex or multi-shape logs may need Helper Rules.
Try it on your own logs
Paste a few real lines, review the detected fields, and copy the Datadog config from the Datadog tab. Free, no account, nothing uploaded — it all runs in your browser.
Open LogForge on the Datadog tab →Generate for other platforms
LogForge also emits regex, Grok, Wazuh decoders and rsyslog templates — see how each format is built in the docs, or browse worked examples by log source. Then open the tool and paste your own lines.