Skip to content

Commit 8354c93

Browse files
author
kpango
committed
fix
2 parents 1b776c3 + fbb1b68 commit 8354c93

File tree

3 files changed

+97
-24
lines changed

3 files changed

+97
-24
lines changed

glg.go

Lines changed: 68 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,9 @@ const (
7878
writeColorBoth
7979
writeBoth
8080
none
81+
82+
// Default Format
83+
df = "%v %v %v %v %v %v %v %v %v %v %v %v %v %v %v %v %v %v %v %v %v %v %v %v %v %v %v %v %v %v %v %v %v %v %v %v %v %v %v %v "
8184
)
8285

8386
var (
@@ -292,6 +295,22 @@ func (g *Glg) SetLevelMode(level LEVEL, mode MODE) *Glg {
292295
return g
293296
}
294297

298+
// SetPrefix set Print logger prefix
299+
func SetPrefix(pref string) *Glg {
300+
return glg.SetPrefix(pref)
301+
}
302+
303+
// SetPrefix set Print logger prefix
304+
func (g *Glg) SetPrefix(pref string) *Glg {
305+
v, ok := g.logger.Load(PRINT)
306+
if ok {
307+
value := v.(*logger)
308+
value.tag = pref
309+
g.logger.Store(PRINT, value)
310+
}
311+
return g
312+
}
313+
295314
// GetCurrentMode returns current logging mode
296315
func (g *Glg) GetCurrentMode(level LEVEL) MODE {
297316
l, ok := g.logger.Load(level)
@@ -647,6 +666,17 @@ func (g *Glg) out(level LEVEL, format string, val ...interface{}) error {
647666
return fmt.Errorf("Log Level %s Not Found", level)
648667
}
649668

669+
if format == "" {
670+
if len(df)/3 > len(val) {
671+
format = df[:len(val)*3-1]
672+
} else {
673+
for range val {
674+
format += "%v "
675+
}
676+
format = format[:len(format)-1]
677+
}
678+
}
679+
650680
var (
651681
err error
652682
buf = g.buffer.Get().([]byte)
@@ -679,7 +709,7 @@ func (g *Glg) out(level LEVEL, format string, val ...interface{}) error {
679709

680710
// Log writes std log event
681711
func (g *Glg) Log(val ...interface{}) error {
682-
return g.out(LOG, "%v", val...)
712+
return g.out(LOG, "", val...)
683713
}
684714

685715
// Logf writes std log event with format
@@ -689,7 +719,7 @@ func (g *Glg) Logf(format string, val ...interface{}) error {
689719

690720
// Log writes std log event
691721
func Log(val ...interface{}) error {
692-
return glg.out(LOG, "%v", val...)
722+
return glg.out(LOG, "", val...)
693723
}
694724

695725
// Logf writes std log event with format
@@ -699,7 +729,7 @@ func Logf(format string, val ...interface{}) error {
699729

700730
// Info outputs Info level log
701731
func (g *Glg) Info(val ...interface{}) error {
702-
return g.out(INFO, "%v", val...)
732+
return g.out(INFO, "", val...)
703733
}
704734

705735
// Infof outputs formatted Info level log
@@ -709,7 +739,7 @@ func (g *Glg) Infof(format string, val ...interface{}) error {
709739

710740
// Info outputs Info level log
711741
func Info(val ...interface{}) error {
712-
return glg.out(INFO, "%v", val...)
742+
return glg.out(INFO, "", val...)
713743
}
714744

715745
// Infof outputs formatted Info level log
@@ -719,7 +749,7 @@ func Infof(format string, val ...interface{}) error {
719749

720750
// Success outputs Success level log
721751
func (g *Glg) Success(val ...interface{}) error {
722-
return g.out(OK, "%v", val...)
752+
return g.out(OK, "", val...)
723753
}
724754

725755
// Successf outputs formatted Success level log
@@ -729,7 +759,7 @@ func (g *Glg) Successf(format string, val ...interface{}) error {
729759

730760
// Success outputs Success level log
731761
func Success(val ...interface{}) error {
732-
return glg.out(OK, "%v", val...)
762+
return glg.out(OK, "", val...)
733763
}
734764

735765
// Successf outputs formatted Success level log
@@ -739,7 +769,7 @@ func Successf(format string, val ...interface{}) error {
739769

740770
// Debug outputs Debug level log
741771
func (g *Glg) Debug(val ...interface{}) error {
742-
return g.out(DEBG, "%v", val...)
772+
return g.out(DEBG, "", val...)
743773
}
744774

745775
// Debugf outputs formatted Debug level log
@@ -749,7 +779,7 @@ func (g *Glg) Debugf(format string, val ...interface{}) error {
749779

750780
// Debug outputs Debug level log
751781
func Debug(val ...interface{}) error {
752-
return glg.out(DEBG, "%v", val...)
782+
return glg.out(DEBG, "", val...)
753783
}
754784

755785
// Debugf outputs formatted Debug level log
@@ -759,7 +789,7 @@ func Debugf(format string, val ...interface{}) error {
759789

760790
// Warn outputs Warn level log
761791
func (g *Glg) Warn(val ...interface{}) error {
762-
return g.out(WARN, "%v", val...)
792+
return g.out(WARN, "", val...)
763793
}
764794

765795
// Warnf outputs formatted Warn level log
@@ -769,7 +799,7 @@ func (g *Glg) Warnf(format string, val ...interface{}) error {
769799

770800
// Warn outputs Warn level log
771801
func Warn(val ...interface{}) error {
772-
return glg.out(WARN, "%v", val...)
802+
return glg.out(WARN, "", val...)
773803
}
774804

775805
// Warnf outputs formatted Warn level log
@@ -779,7 +809,7 @@ func Warnf(format string, val ...interface{}) error {
779809

780810
// CustomLog outputs custom level log
781811
func (g *Glg) CustomLog(level string, val ...interface{}) error {
782-
return g.out(g.TagStringToLevel(level), "%v", val...)
812+
return g.out(g.TagStringToLevel(level), "", val...)
783813
}
784814

785815
// CustomLogf outputs formatted custom level log
@@ -789,7 +819,7 @@ func (g *Glg) CustomLogf(level string, format string, val ...interface{}) error
789819

790820
// CustomLog outputs custom level log
791821
func CustomLog(level string, val ...interface{}) error {
792-
return glg.out(glg.TagStringToLevel(level), "%v", val...)
822+
return glg.out(glg.TagStringToLevel(level), "", val...)
793823
}
794824

795825
// CustomLogf outputs formatted custom level log
@@ -799,12 +829,12 @@ func CustomLogf(level string, format string, val ...interface{}) error {
799829

800830
// Print outputs Print log
801831
func (g *Glg) Print(val ...interface{}) error {
802-
return g.out(PRINT, "%v", val...)
832+
return g.out(PRINT, "", val...)
803833
}
804834

805835
// Println outputs fixed line Print log
806836
func (g *Glg) Println(val ...interface{}) error {
807-
return g.out(PRINT, "%v\n", val...)
837+
return g.out(PRINT, "", val...)
808838
}
809839

810840
// Printf outputs formatted Print log
@@ -814,12 +844,12 @@ func (g *Glg) Printf(format string, val ...interface{}) error {
814844

815845
// Print outputs Print log
816846
func Print(val ...interface{}) error {
817-
return glg.out(PRINT, "%v", val...)
847+
return glg.out(PRINT, "", val...)
818848
}
819849

820850
// Println outputs fixed line Print log
821851
func Println(val ...interface{}) error {
822-
return glg.out(PRINT, "%v\n", val...)
852+
return glg.out(PRINT, "", val...)
823853
}
824854

825855
// Printf outputs formatted Print log
@@ -829,7 +859,7 @@ func Printf(format string, val ...interface{}) error {
829859

830860
// Error outputs Error log
831861
func (g *Glg) Error(val ...interface{}) error {
832-
return g.out(ERR, "%v", val...)
862+
return g.out(ERR, "", val...)
833863
}
834864

835865
// Errorf outputs formatted Error log
@@ -839,7 +869,7 @@ func (g *Glg) Errorf(format string, val ...interface{}) error {
839869

840870
// Error outputs Error log
841871
func Error(val ...interface{}) error {
842-
return glg.out(ERR, "%v", val...)
872+
return glg.out(ERR, "", val...)
843873
}
844874

845875
// Errorf outputs formatted Error log
@@ -849,7 +879,7 @@ func Errorf(format string, val ...interface{}) error {
849879

850880
// Fail outputs Failed log
851881
func (g *Glg) Fail(val ...interface{}) error {
852-
return g.out(FAIL, "%v", val...)
882+
return g.out(FAIL, "", val...)
853883
}
854884

855885
// Failf outputs formatted Failed log
@@ -859,7 +889,7 @@ func (g *Glg) Failf(format string, val ...interface{}) error {
859889

860890
// Fail outputs Failed log
861891
func Fail(val ...interface{}) error {
862-
return glg.out(FAIL, "%v", val...)
892+
return glg.out(FAIL, "", val...)
863893
}
864894

865895
// Failf outputs formatted Failed log
@@ -869,12 +899,26 @@ func Failf(format string, val ...interface{}) error {
869899

870900
// Fatal outputs Failed log and exit program
871901
func (g *Glg) Fatal(val ...interface{}) {
872-
g.Fatalf("%v", val...)
902+
err := g.out(FATAL, "", val...)
903+
if err != nil {
904+
err = g.Error(err.Error())
905+
if err != nil {
906+
panic(err)
907+
}
908+
}
909+
exit(1)
873910
}
874911

875912
// Fatalln outputs line fixed Failed log and exit program
876913
func (g *Glg) Fatalln(val ...interface{}) {
877-
g.Fatalf("%v\n", val...)
914+
err := g.out(FATAL, "", val...)
915+
if err != nil {
916+
err = g.Error(err.Error())
917+
if err != nil {
918+
panic(err)
919+
}
920+
}
921+
exit(1)
878922
}
879923

880924
// Fatalf outputs formatted Failed log and exit program
@@ -891,7 +935,7 @@ func (g *Glg) Fatalf(format string, val ...interface{}) {
891935

892936
// Fatal outputs Failed log and exit program
893937
func Fatal(val ...interface{}) {
894-
glg.Fatalf("%v", val...)
938+
glg.Fatal(val...)
895939
}
896940

897941
// Fatalf outputs formatted Failed log and exit program
@@ -901,5 +945,5 @@ func Fatalf(format string, val ...interface{}) {
901945

902946
// Fatalln outputs line fixed Failed log and exit program
903947
func Fatalln(val ...interface{}) {
904-
glg.Fatalf("%v\n", val...)
948+
glg.Fatalln(val...)
905949
}

glg_test.go

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -615,6 +615,35 @@ func TestGlg_AddErrLevel(t *testing.T) {
615615
}
616616
}
617617

618+
func TestGlg_SetPrefix(t *testing.T) {
619+
tests := []struct {
620+
prefix string
621+
name string
622+
glg *Glg
623+
want string
624+
}{
625+
{
626+
name: "Prefix GLG",
627+
glg: New(),
628+
prefix: "GLG",
629+
want: "GLG",
630+
},
631+
}
632+
for _, tt := range tests {
633+
t.Run(tt.name, func(t *testing.T) {
634+
tt.glg.SetPrefix(tt.prefix)
635+
buf := new(bytes.Buffer)
636+
tt.glg.SetWriter(buf)
637+
tt.glg.SetMode(WRITER)
638+
tt.glg.Println("sample")
639+
if !strings.Contains(buf.String(), tt.want) {
640+
t.Errorf("SetPrefix = got %v want %v", buf.String(), tt.want)
641+
}
642+
})
643+
}
644+
645+
}
646+
618647
func TestGlg_EnableColor(t *testing.T) {
619648
tests := []struct {
620649
name string

images/bench.png

-24.5 KB
Loading

0 commit comments

Comments
 (0)