aboutsummaryrefslogtreecommitdiff
path: root/service_report.go
diff options
context:
space:
mode:
Diffstat (limited to 'service_report.go')
-rw-r--r--service_report.go20
1 files changed, 12 insertions, 8 deletions
diff --git a/service_report.go b/service_report.go
index 7aee321..492e368 100644
--- a/service_report.go
+++ b/service_report.go
@@ -28,19 +28,19 @@ type ServiceReport struct {
History []ScanReport
}
-func NewServiceReport(opts ServerOptions, name string) (
+func NewServiceReport(cfg ServerConfig, name string) (
svcReport *ServiceReport, err error,
) {
var logp = `NewServiceReport`
svcReport = &ServiceReport{
- logPath: filepath.Join(opts.logServiceDir, name+`.log`),
+ logPath: filepath.Join(cfg.logServiceDir, name+`.log`),
Name: name,
History: make([]ScanReport, 0, historyMax),
}
svcReport.logf, err = os.OpenFile(svcReport.logPath,
- os.O_WRONLY|os.O_CREATE, 0600)
+ os.O_WRONLY|os.O_APPEND|os.O_CREATE, 0600)
if err != nil {
return nil, fmt.Errorf(`%s: %w`, logp, err)
}
@@ -52,6 +52,7 @@ func NewServiceReport(opts ServerOptions, name string) (
// Close release any resources opened by report.
func (svcReport *ServiceReport) Close() (err error) {
+ svcReport.writer.Flush()
err = svcReport.logf.Close()
if err != nil {
return fmt.Errorf(`Close: %w`, err)
@@ -60,16 +61,19 @@ func (svcReport *ServiceReport) Close() (err error) {
}
func (svcReport *ServiceReport) Store(scanReport ScanReport) {
+ var record = scanReport.toCSV()
+ log.Printf(`Store: %v`, record)
+ var err = svcReport.writer.Write(record)
+ if err != nil {
+ log.Printf(`Store: %s`, err)
+ }
+
svcReport.Last = scanReport
svcReport.History = append(svcReport.History, scanReport)
if len(svcReport.History) == historyMax {
+ svcReport.writer.Flush()
var start = len(svcReport.History) - historyKeepSize
copy(svcReport.History, svcReport.History[start:])
svcReport.History = svcReport.History[:historyKeepSize-1]
}
- var record = scanReport.toCSV()
- var err = svcReport.writer.Write(record)
- if err != nil {
- log.Printf(`Store: %s`, err)
- }
}