diff options
Diffstat (limited to 'datalogger/logger.go')
| -rw-r--r-- | datalogger/logger.go | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/datalogger/logger.go b/datalogger/logger.go index 4c3b080..249a059 100644 --- a/datalogger/logger.go +++ b/datalogger/logger.go @@ -108,17 +108,27 @@ func (logger *CSVDataLogger[T]) Export() bool { return false } + toOmit := make([]int, 0) visibleFields := reflect.VisibleFields(reflect.TypeOf((*T)(nil)).Elem()) - for _, v := range visibleFields { + for i, v := range visibleFields { description, success := v.Tag.Lookup("Description") columnName := fmt.Sprintf("%s", v.Name) if success { + if description == "[OMIT]" { + toOmit = append(toOmit, i) + continue + } columnName = fmt.Sprintf("%s", description) } logger.destination.Write([]byte(fmt.Sprintf("%s, ", columnName))) } logger.destination.Write([]byte("\n")) + // Remove the Omitted fields + for _, i := range toOmit { + visibleFields = append(visibleFields[:i], visibleFields[i+1:]...) + } + for _, d := range logger.data { for _, v := range visibleFields { data := reflect.ValueOf(d) |
