Security News
Opengrep Emerges as Open Source Alternative Amid Semgrep Licensing Controversy
Opengrep forks Semgrep to preserve open source SAST in response to controversial licensing changes.
github.com/etnz/logfmt
#logfmt
To use the package:
go get github.com/etnz/logfmt
logfmt is defined in Brandur's blog as a logging format optimal for easy development, consistency, and good legibility for humans and computers.
at=info method=GET path=/ host=mutelight.org status=200
The example above can be generated like:
logfmt.
S("at", "info").
S("method",r.Method).
S("path", r.URL.Path).
D("status", code ).
Log()
Where 'S', 'Q', 'D' are method mapping the usual 'fmt' verbs.
Key/Value are stored in a map, so it's ok to call S("at", "info") several time, the last one is always right.
When writing the line in the output stream, keys are not printed in random order. Logs would be hard to read, and not reproducible. Instead key/value pairs are sorted in significance order: the shortest keys first, then alphabetically
at=info path=/ host=mutelight.org method=GET status=200
It enforce the tendency to keep generic keys short, and specific one longer, the first information you read is the most important.
Usually it is faster than the default "log" package
r := Rec()
r.D("timestamp", int(n))
r.D("at", i)
r.Q("username", "eric")
r.K("debug")
r.Log()
At 1389 ns/op : 720 logs per milliseconds
log.Printf("at=%d", i)
log.Printf("debug")
log.Printf("username=%q\n", "eric")
At 2248 ns/op, that is 445 logs per milliseconds
Because using logfmt, you tend to group together information in less records, but richer, I compared a single logfmt record with 4 attributes with a 3 default logs.
'Record' object is idiomatic:
log:= logfmt.Rec()
defer log.Log()
//set an initial value
r.S("level", "debug")
...
if err != nil{
r.S("level", "error") // escalate the record
r.V("err", err)
}
See Examples or directly the godoc for more details.
FAQs
Unknown package
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Opengrep forks Semgrep to preserve open source SAST in response to controversial licensing changes.
Security News
Critics call the Node.js EOL CVE a misuse of the system, sparking debate over CVE standards and the growing noise in vulnerability databases.
Security News
cURL and Go security teams are publicly rejecting CVSS as flawed for assessing vulnerabilities and are calling for more accurate, context-aware approaches.