Files
learngo/logparser/v6/logly/report/text.go
2019-10-30 19:41:13 +03:00

51 lines
1.0 KiB
Go

// Copyright © 2018 Inanc Gumus
// Learn Go Programming Course
// License: https://creativecommons.org/licenses/by-nc-sa/4.0/
//
// For more tutorials : https://learngoprogramming.com
// In-person training : https://www.linkedin.com/in/inancgumus/
// Follow me on twitter: https://twitter.com/inancgumus
package report
import (
"fmt"
"io"
"text/tabwriter"
"github.com/inancgumus/learngo/logparser/v6/logly/record"
)
// Text generates a text report.
func Text(w io.Writer, rs []record.Record) error {
tw := tabwriter.NewWriter(
w,
0, // minWidth
4, // tabWidth
4, // padding
' ', // padChar
0, // flags
)
fmt.Fprintf(tw, "DOMAINS\tPAGES\tVISITS\tUNIQUES\n")
fmt.Fprintf(tw, "-------\t-----\t------\t-------\n")
var total record.Record
for _, r := range rs {
total.Sum(r)
fmt.Fprintf(tw, "%s\t%s\t%d\t%d\n",
r.Domain, r.Page,
r.Visits, r.Uniques,
)
}
fmt.Fprintf(tw, "\t\t\t\n")
fmt.Fprintf(tw, "%s\t%s\t%d\t%d\n",
"TOTAL", "",
total.Visits, total.Uniques,
)
return tw.Flush()
}