Changeset 250 in code for trunk/logger.go


Ignore:
Timestamp:
Apr 8, 2020, 8:19:33 AM (5 years ago)
Author:
contact
Message:

Parse timestamp from message tags in messageLogger.Append

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/logger.go

    r248 r250  
    4242        }
    4343
    44         // TODO: parse time from msg.Tags["time"], if available
     44        var t time.Time
     45        if tag, ok := msg.Tags["time"]; ok {
     46                var err error
     47                t, err = time.Parse(serverTimeLayout, string(tag))
     48                if err != nil {
     49                        return fmt.Errorf("failed to parse message time tag: %v", err)
     50                }
     51                t = t.In(time.Local)
     52        } else {
     53                t = time.Now()
     54        }
    4555
    4656        // TODO: enforce maximum open file handles (LRU cache of file handles)
    4757        // TODO: handle non-monotonic clock behaviour
    48         now := time.Now()
    49         path := logPath(ml.network, ml.entity, now)
     58        path := logPath(ml.network, ml.entity, t)
    5059        if ml.path != path {
    5160                if ml.file != nil {
     
    6776        }
    6877
    69         _, err := fmt.Fprintf(ml.file, "[%02d:%02d:%02d] %s\n", now.Hour(), now.Minute(), now.Second(), s)
     78        _, err := fmt.Fprintf(ml.file, "[%02d:%02d:%02d] %s\n", t.Hour(), t.Minute(), t.Second(), s)
    7079        if err != nil {
    7180                return fmt.Errorf("failed to log message to %q: %v", ml.path, err)
Note: See TracChangeset for help on using the changeset viewer.