@@ -66,14 +66,15 @@ type LEVEL uint8
66
66
type wMode uint8
67
67
68
68
type logger struct {
69
- tag string
70
- rawtag []byte
71
- writer io.Writer
72
- std io.Writer
73
- color func (string ) string
74
- isColor bool
75
- mode MODE
76
- writeMode wMode
69
+ tag string
70
+ rawtag []byte
71
+ writer io.Writer
72
+ std io.Writer
73
+ color func (string ) string
74
+ isColor bool
75
+ mode MODE
76
+ writeMode wMode
77
+ disableTimestamp bool
77
78
}
78
79
79
80
const (
@@ -127,9 +128,10 @@ const (
127
128
rc = "\n "
128
129
rcl = len (rc )
129
130
130
- lsep = "\t ["
131
+ tab = "\t "
132
+ lsep = tab + "["
131
133
lsepl = len (lsep )
132
- sep = "]:\t "
134
+ sep = "]:" + tab
133
135
sepl = len (sep )
134
136
)
135
137
@@ -479,6 +481,50 @@ func (g *Glg) AddErrLevel(tag string, mode MODE, isColor bool) *Glg {
479
481
return g
480
482
}
481
483
484
+ // EnableTimestamp enables timestamp output
485
+ func (g * Glg ) EnableTimestamp () * Glg {
486
+
487
+ g .logger .Range (func (lev LEVEL , l * logger ) bool {
488
+ l .disableTimestamp = false
489
+ g .logger .Store (lev , l )
490
+ return true
491
+ })
492
+
493
+ return g
494
+ }
495
+
496
+ // DisableTimestamp disables timestamp output
497
+ func (g * Glg ) DisableTimestamp () * Glg {
498
+
499
+ g .logger .Range (func (lev LEVEL , l * logger ) bool {
500
+ l .disableTimestamp = true
501
+ g .logger .Store (lev , l )
502
+ return true
503
+ })
504
+
505
+ return g
506
+ }
507
+
508
+ // EnableLevelTimestamp enables timestamp output
509
+ func (g * Glg ) EnableLevelTimestamp (lv LEVEL ) * Glg {
510
+ l , ok := g .logger .Load (lv )
511
+ if ok {
512
+ l .disableTimestamp = false
513
+ g .logger .Store (lv , l )
514
+ }
515
+ return g
516
+ }
517
+
518
+ // DisableLevelTimestamp disables timestamp output
519
+ func (g * Glg ) DisableLevelTimestamp (lv LEVEL ) * Glg {
520
+ l , ok := g .logger .Load (lv )
521
+ if ok {
522
+ l .disableTimestamp = true
523
+ g .logger .Store (lv , l )
524
+ }
525
+ return g
526
+ }
527
+
482
528
// EnableColor enables color output
483
529
func (g * Glg ) EnableColor () * Glg {
484
530
@@ -685,7 +731,6 @@ func (g *Glg) out(level LEVEL, format string, val ...interface{}) error {
685
731
return fmt .Errorf ("error:\t Log Level %d Not Found" , level )
686
732
}
687
733
688
- fn := fastime .FormattedNow ()
689
734
if g .enableJSON {
690
735
var w io.Writer
691
736
switch log .writeMode {
@@ -706,8 +751,13 @@ func (g *Glg) out(level LEVEL, format string, val ...interface{}) error {
706
751
} else {
707
752
detail = val [0 ]
708
753
}
754
+ var timestamp string
755
+ if ! log .disableTimestamp {
756
+ fn := fastime .FormattedNow ()
757
+ timestamp = * (* string )(unsafe .Pointer (& fn ))
758
+ }
709
759
return json .NewEncoder (w ).Encode (JSONFormat {
710
- Date : * ( * string )( unsafe . Pointer ( & fn )) ,
760
+ Date : timestamp ,
711
761
Level : log .tag ,
712
762
Detail : detail ,
713
763
})
@@ -719,8 +769,12 @@ func (g *Glg) out(level LEVEL, format string, val ...interface{}) error {
719
769
b = g .buffer .Get ().(* bytes.Buffer )
720
770
)
721
771
722
- b .Write (fn )
723
- b .Write (log .rawtag )
772
+ if log .disableTimestamp {
773
+ b .Write (log .rawtag [len (tab ):])
774
+ } else {
775
+ b .Write (fastime .FormattedNow ())
776
+ b .Write (log .rawtag )
777
+ }
724
778
b .WriteString (format )
725
779
726
780
switch {
0 commit comments