@@ -89,79 +89,70 @@ func (w *testLoggerWriterCloser) Reset() {
8989	w .Unlock ()
9090}
9191
92+ // Printf takes a format and args and prints the string to os.Stdout 
93+ func  Printf (format  string , args  ... any ) {
94+ 	if  ! log .CanColorStdout  {
95+ 		for  i  :=  0 ; i  <  len (args ); i ++  {
96+ 			if  c , ok  :=  args [i ].(* log.ColoredValue ); ok  {
97+ 				args [i ] =  c .Value ()
98+ 			}
99+ 		}
100+ 	}
101+ 	_ , _  =  fmt .Fprintf (os .Stdout , "\t " + format , args ... )
102+ }
103+ 
92104// PrintCurrentTest prints the current test to os.Stdout 
93105func  PrintCurrentTest (t  testing.TB , skip  ... int ) func () {
94106	t .Helper ()
95107	start  :=  time .Now ()
96108	actualSkip  :=  util .OptionalArg (skip ) +  1 
97109	_ , filename , line , _  :=  runtime .Caller (actualSkip )
98110
99- 	if  log .CanColorStdout  {
100- 		_ , _  =  fmt .Fprintf (os .Stdout , "=== %s (%s:%d)\n " , fmt .Formatter (log .NewColoredValue (t .Name ())), strings .TrimPrefix (filename , prefix ), line )
101- 	} else  {
102- 		_ , _  =  fmt .Fprintf (os .Stdout , "=== %s (%s:%d)\n " , t .Name (), strings .TrimPrefix (filename , prefix ), line )
103- 	}
111+ 	Printf ("=== %s (%s:%d)\n " , log .NewColoredValue (t .Name ()), strings .TrimPrefix (filename , prefix ), line )
112+ 
104113	WriterCloser .pushT (t )
105114	return  func () {
106115		took  :=  time .Since (start )
107116		if  took  >  SlowTest  {
108- 			if  log .CanColorStdout  {
109- 				_ , _  =  fmt .Fprintf (os .Stdout , "+++ %s is a slow test (took %v)\n " , fmt .Formatter (log .NewColoredValue (t .Name (), log .Bold , log .FgYellow )), fmt .Formatter (log .NewColoredValue (took , log .Bold , log .FgYellow )))
110- 			} else  {
111- 				_ , _  =  fmt .Fprintf (os .Stdout , "+++ %s is a slow test (took %v)\n " , t .Name (), took )
112- 			}
117+ 			Printf ("+++ %s is a slow test (took %v)\n " , log .NewColoredValue (t .Name (), log .Bold , log .FgYellow ), log .NewColoredValue (took , log .Bold , log .FgYellow ))
113118		}
119+ 
114120		timer  :=  time .AfterFunc (SlowFlush , func () {
115- 			if  log .CanColorStdout  {
116- 				_ , _  =  fmt .Fprintf (os .Stdout , "+++ %s ... still flushing after %v ...\n " , fmt .Formatter (log .NewColoredValue (t .Name (), log .Bold , log .FgRed )), SlowFlush )
117- 			} else  {
118- 				_ , _  =  fmt .Fprintf (os .Stdout , "+++ %s ... still flushing after %v ...\n " , t .Name (), SlowFlush )
119- 			}
121+ 			Printf ("+++ %s ... still flushing after %v ...\n " , log .NewColoredValue (t .Name (), log .Bold , log .FgRed ), SlowFlush )
120122		})
121123		if  err  :=  queue .GetManager ().FlushAll (context .Background (), - 1 ); err  !=  nil  {
122124			t .Errorf ("Flushing queues failed with error %v" , err )
123125		}
124126		timer .Stop ()
125127		flushTook  :=  time .Since (start ) -  took 
126128		if  flushTook  >  SlowFlush  {
127- 			if  log .CanColorStdout  {
128- 				_ , _  =  fmt .Fprintf (os .Stdout , "+++ %s had a slow clean-up flush (took %v)\n " , fmt .Formatter (log .NewColoredValue (t .Name (), log .Bold , log .FgRed )), fmt .Formatter (log .NewColoredValue (flushTook , log .Bold , log .FgRed )))
129- 			} else  {
130- 				_ , _  =  fmt .Fprintf (os .Stdout , "+++ %s had a slow clean-up flush (took %v)\n " , t .Name (), flushTook )
131- 			}
129+ 			Printf ("+++ %s had a slow clean-up flush (took %v)\n " , log .NewColoredValue (t .Name (), log .Bold , log .FgRed ), log .NewColoredValue (flushTook , log .Bold , log .FgRed ))
132130		}
133- 		WriterCloser .popT ()
134- 	}
135- }
136131
137- // Printf takes a format and args and prints the string to os.Stdout 
138- func  Printf (format  string , args  ... any ) {
139- 	if  log .CanColorStdout  {
140- 		for  i  :=  0 ; i  <  len (args ); i ++  {
141- 			args [i ] =  log .NewColoredValue (args [i ])
142- 		}
132+ 		WriterCloser .popT ()
143133	}
144- 	_ , _  =  fmt .Fprintf (os .Stdout , "\t " + format , args ... )
145134}
146135
147136// TestLogEventWriter is a logger which will write to the testing log 
148137type  TestLogEventWriter  struct  {
149138	* log.EventWriterBaseImpl 
150139}
151140
152- // NewTestLoggerWriter  creates a TestLogEventWriter as a log.LoggerProvider 
153- func  NewTestLoggerWriter (name  string , mode  log.WriterMode ) log.EventWriter  {
141+ // newTestLoggerWriter  creates a TestLogEventWriter as a log.LoggerProvider 
142+ func  newTestLoggerWriter (name  string , mode  log.WriterMode ) log.EventWriter  {
154143	w  :=  & TestLogEventWriter {}
155144	w .EventWriterBaseImpl  =  log .NewEventWriterBase (name , "test-log-writer" , mode )
156145	w .OutputWriteCloser  =  WriterCloser 
157146	return  w 
158147}
159148
160- func  init () {
149+ func  Init () {
161150	const  relFilePath  =  "modules/testlogger/testlogger.go" 
162151	_ , filename , _ , _  :=  runtime .Caller (0 )
163152	if  ! strings .HasSuffix (filename , relFilePath ) {
164153		panic ("source code file path doesn't match expected: "  +  relFilePath )
165154	}
166155	prefix  =  strings .TrimSuffix (filename , relFilePath )
156+ 
157+ 	log .RegisterEventWriter ("test" , newTestLoggerWriter )
167158}
0 commit comments