mirror of
https://github.com/grafana/loki.git
synced 2026-03-13 09:33:58 +08:00
logplex/encoding
What's this?
A set of libraries we use to parse messages, and to also publish these same syslog RFC5424 messages.
How to use?
We have 2 scanners available. If you're trying to build a logplex compatible ingress, you can use the regular scanner.
Scanner
func handler(w http.ResponseWriter, r *http.Request) {
s := NewScanner(r.Body)
for s.Scan() {
log.Printf("%+v", scanner.Message())
}
if s.Err() != nil {
log.Printf("err: %v", s.Err())
}
}
DrainScanner
If the intent is to write an application which acts as a heroku drain, then using the DrainScanner is preferrable -- primarily because it doesn't require structured data.
func handler(w http.ResponseWriter, r *http.Request) {
s := NewDrainScanner(r.Body)
for s.Scan() {
log.Printf("%+v", scanner.Message())
}
if s.Err() != nil {
log.Printf("err: %v", s.Err())
}
}