changeset 5533:0a2326eda3a5 aggregate-gm-import-logging

Improved readability a bit. Fixed a defer bug.
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Mon, 25 Oct 2021 01:25:38 +0200
parents 7e21a9e6353d
children cb62985ec252
files pkg/imports/gm.go
diffstat 1 files changed, 23 insertions(+), 16 deletions(-) [+]
line wrap: on
line diff
--- a/pkg/imports/gm.go	Mon Oct 25 00:37:39 2021 +0200
+++ b/pkg/imports/gm.go	Mon Oct 25 01:25:38 2021 +0200
@@ -363,6 +363,7 @@
 }
 
 func (gls gmLogs) logging(feedback Feedback) {
+
 	gls.logBool(
 		(*gmLog).getUnkown,
 		"Cannot find following gauges: ",
@@ -407,6 +408,11 @@
 		(*gmLog).getMeasurements,
 		"New measurements: ",
 		feedback.Info)
+
+	gls.logBool(
+		(*gmLog).nothingChanged,
+		"No changes for: ",
+		feedback.Info)
 }
 
 func (gl *gmLog) getAssumedZPG() bool              { return gl.assumedZPG }
@@ -418,6 +424,7 @@
 func (gl *gmLog) getBadValues() int                { return gl.badValues }
 func (gl *gmLog) getPredictions() int              { return gl.predictions }
 func (gl *gmLog) getMeasurements() int             { return gl.measurements }
+func (gl *gmLog) nothingChanged() bool             { return gl.measurements == 0 && gl.predictions == 0 }
 
 func (gls gmLogs) logBool(
 	access func(*gmLog) bool,
@@ -430,7 +437,7 @@
 			if sb.Len() == 0 {
 				sb.WriteString(header)
 			} else {
-				sb.WriteString("; ")
+				sb.WriteString(", ")
 			}
 			sb.WriteString(gl.gid)
 		}
@@ -451,7 +458,7 @@
 			if sb.Len() == 0 {
 				sb.WriteString(header)
 			} else {
-				sb.WriteString("; ")
+				sb.WriteString(", ")
 			}
 			fmt.Fprintf(&sb, "%s (%d)", gl.gid, v)
 		}
@@ -472,12 +479,12 @@
 			if sb.Len() == 0 {
 				sb.WriteString(header)
 			} else {
-				sb.WriteString("; ")
+				sb.WriteString(", ")
 			}
 			fmt.Fprintf(&sb, "%s (", gl.gid)
 			for i, v := range s {
 				if i > 0 {
-					sb.WriteString(", ")
+					sb.WriteString("; ")
 				}
 				sb.WriteString(v)
 			}
@@ -544,7 +551,7 @@
 	// To prevent spamming the log actual logging
 	// is defered to be presented in an aggregated way.
 	var logs gmLogs
-	defer logs.logging(feedback)
+	defer func() { logs.logging(feedback) }()
 
 	findLog := logFinder(&logs)
 
@@ -557,17 +564,17 @@
 				feedback.Warn("Invalid ISRS code %v", err)
 				continue
 			}
-			log := findLog(curr)
+			logger := findLog(curr)
 			gids = append(gids, curr)
 
 			if !isKnown(curr) {
-				log.unknown = true
+				logger.unknown = true
 				continue
 			}
 
 			var referenceCode string
 			if wrm.Reference_code == nil {
-				log.assumedZPG = true
+				logger.assumedZPG = true
 				referenceCode = "ZPG"
 			} else {
 				referenceCode = string(*wrm.Reference_code)
@@ -576,26 +583,26 @@
 			for _, measure := range wrm.Measure {
 				var unit string
 				if *measure.Measure_code != nts.Measure_code_enumWAL {
-					log.ignoreMeasureCode(*measure.Measure_code)
+					logger.ignoreMeasureCode(*measure.Measure_code)
 					continue
 				}
 				if measure.Unit == nil {
-					log.assumedCM++
+					logger.assumedCM++
 					unit = "cm"
 				} else {
 					unit = string(*measure.Unit)
 				}
 
 				if measure.Value == nil {
-					log.missingValues = append(
-						log.missingValues,
+					logger.missingValues = append(
+						logger.missingValues,
 						measure.Measuredate.Time.Format(time.RFC3339))
 					continue
 				}
 
 				convert, err := rescale(unit)
 				if err != nil {
-					log.addRescaleError(err)
+					logger.addRescaleError(err)
 					continue
 				}
 				convert(measure.Value)
@@ -604,7 +611,7 @@
 
 				// -99999 is used by some gauges to signal an error
 				if *measure.Value == -99999 {
-					log.badValues++
+					logger.badValues++
 					continue
 				}
 
@@ -654,7 +661,7 @@
 					case err != nil:
 						feedback.Error(pgxutils.ReadableError{Err: err}.Error())
 					default:
-						log.predictions++
+						logger.predictions++
 					}
 				} else {
 					err = insertGMStmt.QueryRowContext(
@@ -680,7 +687,7 @@
 					case err != nil:
 						feedback.Error(pgxutils.ReadableError{Err: err}.Error())
 					default:
-						log.measurements++
+						logger.measurements++
 					}
 				}
 			}