github.com/go-spring/spring-base@v1.1.3/log/log_test.go (about) 1 /* 2 * Copyright 2012-2019 the original author or authors. 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * https://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 package log_test 18 19 import ( 20 "context" 21 "errors" 22 "fmt" 23 "sync" 24 "sync/atomic" 25 "testing" 26 "time" 27 28 "github.com/go-spring/spring-base/assert" 29 "github.com/go-spring/spring-base/code" 30 "github.com/go-spring/spring-base/log" 31 "github.com/go-spring/spring-base/util" 32 ) 33 34 func TestAtomicAndMutex(t *testing.T) { 35 t.SkipNow() 36 37 k := int32(0) 38 count := 1000000000 39 40 // 直接读取,10亿次,313.234156ms。 41 start := time.Now() 42 for i := 0; i < count; i++ { 43 j := k 44 _ = j 45 } 46 fmt.Println(time.Since(start)) 47 48 // 原子读取,10亿次,332.547066ms。 49 start = time.Now() 50 for i := 0; i < count; i++ { 51 j := atomic.LoadInt32(&k) 52 _ = j 53 } 54 k = 0 55 fmt.Println(time.Since(start)) 56 57 // 原子累加,10亿次,6.251721832s。 58 start = time.Now() 59 for i := 0; i < count; i++ { 60 atomic.AddInt32(&k, 1) 61 } 62 k = 0 63 fmt.Println(time.Since(start)) 64 65 // atomic.Value,10亿次,978.367782ms。 66 var v atomic.Value 67 v.Store(k) 68 start = time.Now() 69 for i := 0; i < count; i++ { 70 j := v.Load().(int32) 71 _ = j 72 } 73 fmt.Println(time.Since(start)) 74 75 // 使用读锁,10亿次,12.758831296s。 76 var mux sync.RWMutex 77 start = time.Now() 78 for i := 0; i < count; i++ { 79 mux.RLock() 80 j := k 81 _ = j 82 mux.RUnlock() 83 } 84 fmt.Println(time.Since(start)) 85 } 86 87 type Student struct{} 88 type student struct{} 89 90 func TestGetLogger(t *testing.T) { 91 92 config := ` 93 <?xml version="1.0" encoding="UTF-8"?> 94 <Configuration> 95 <Appenders> 96 <Console name="Console"/> 97 </Appenders> 98 <Loggers> 99 <Logger name="spring/spring-base/log_test" level="debug"> 100 <AppenderRef ref="Console"> 101 <Filters> 102 <LevelFilter level="info"/> 103 </Filters> 104 </AppenderRef> 105 </Logger> 106 <Root level="debug"> 107 <AppenderRef ref="Console"/> 108 <LevelFilter level="info"/> 109 </Root> 110 </Loggers> 111 </Configuration> 112 ` 113 114 err := log.RefreshBuffer(config, ".xml") 115 if err != nil { 116 t.Fatal(err) 117 } 118 119 type Class struct{} 120 type class struct{} 121 122 logger := log.GetLogger(util.TypeName(new(Student))) 123 assert.Equal(t, logger.Name(), "github.com/go-spring/spring-base/log/log_test.Student") 124 logger.Info("1") 125 126 logger = log.GetLogger(util.TypeName(new(student))) 127 assert.Equal(t, logger.Name(), "github.com/go-spring/spring-base/log/log_test.student") 128 logger.Info("2") 129 130 logger = log.GetLogger(util.TypeName(new(Class))) 131 assert.Equal(t, logger.Name(), "github.com/go-spring/spring-base/log/log_test.Class") 132 logger.Info("3") 133 134 logger = log.GetLogger(util.TypeName(new(class))) 135 assert.Equal(t, logger.Name(), "github.com/go-spring/spring-base/log/log_test.class") 136 logger.Info("4") 137 138 logger = nil 139 assert.Equal(t, util.TypeName(logger), "github.com/go-spring/spring-base/log/log.Logger") 140 } 141 142 func TestLogger(t *testing.T) { 143 144 config := ` 145 <?xml version="1.0" encoding="UTF-8"?> 146 <Configuration> 147 <Appenders> 148 <Console name="Console"/> 149 </Appenders> 150 <Loggers> 151 <Root level="trace"> 152 <AppenderRef ref="Console"/> 153 </Root> 154 </Loggers> 155 </Configuration> 156 ` 157 158 err := log.RefreshBuffer(config, ".xml") 159 if err != nil { 160 t.Fatal(err) 161 } 162 163 logger := log.GetLogger("xxx") 164 165 msg := func(format string, args ...interface{}) *log.Event { 166 return logger.WithSkip(1).Infof(format, args...) 167 }("log skip test") 168 assert.Equal(t, msg.Level, log.InfoLevel) 169 assert.Equal(t, msg.File, code.File()) 170 assert.Equal(t, msg.Line, code.Line()-3) 171 //assert.Equal(t, msg.Msg().Text(), "log skip test") 172 173 msg = logger.Trace("a", "=", "1") 174 assert.Equal(t, msg.Level, log.TraceLevel) 175 assert.Equal(t, msg.File, code.File()) 176 assert.Equal(t, msg.Line, code.Line()-3) 177 //assert.Equal(t, msg.Msg().Text(), "a=1") 178 179 msg = logger.Tracef("a=%d", 1) 180 assert.Equal(t, msg.Level, log.TraceLevel) 181 assert.Equal(t, msg.File, code.File()) 182 assert.Equal(t, msg.Line, code.Line()-3) 183 //assert.Equal(t, msg.Msg().Text(), "a=1") 184 185 msg = logger.Trace(log.T(func() []interface{} { 186 return []interface{}{"a", "=", "1"} 187 })) 188 assert.Equal(t, msg.Level, log.TraceLevel) 189 assert.Equal(t, msg.File, code.File()) 190 assert.Equal(t, msg.Line, code.Line()-5) 191 //assert.Equal(t, msg.Msg().Text(), "a=1") 192 193 msg = logger.Tracef("a=%d", log.T(func() []interface{} { 194 return []interface{}{1} 195 })) 196 assert.Equal(t, msg.Level, log.TraceLevel) 197 assert.Equal(t, msg.File, code.File()) 198 assert.Equal(t, msg.Line, code.Line()-5) 199 //assert.Equal(t, msg.Msg().Text(), "a=1") 200 201 msg = logger.Tracew(log.String("a", "1")) 202 assert.Equal(t, msg.Level, log.TraceLevel) 203 assert.Equal(t, msg.File, code.File()) 204 assert.Equal(t, msg.Line, code.Line()-3) 205 //assert.Equal(t, msg.Msg().Text(), "a=1") 206 207 msg = logger.Tracew(log.W(func() []log.Field { 208 return []log.Field{ 209 log.String("a", "1"), 210 } 211 })) 212 assert.Equal(t, msg.Level, log.TraceLevel) 213 assert.Equal(t, msg.File, code.File()) 214 assert.Equal(t, msg.Line, code.Line()-7) 215 //assert.Equal(t, msg.Msg().Text(), "a=1") 216 217 msg = logger.Debug("a", "=", "1") 218 assert.Equal(t, msg.Level, log.DebugLevel) 219 assert.Equal(t, msg.File, code.File()) 220 assert.Equal(t, msg.Line, code.Line()-3) 221 //assert.Equal(t, msg.Msg().Text(), "a=1") 222 223 msg = logger.Debugf("a=%d", 1) 224 assert.Equal(t, msg.Level, log.DebugLevel) 225 assert.Equal(t, msg.File, code.File()) 226 assert.Equal(t, msg.Line, code.Line()-3) 227 //assert.Equal(t, msg.Msg().Text(), "a=1") 228 229 msg = logger.Debug(log.T(func() []interface{} { 230 return []interface{}{"a", "=", "1"} 231 })) 232 assert.Equal(t, msg.Level, log.DebugLevel) 233 assert.Equal(t, msg.File, code.File()) 234 assert.Equal(t, msg.Line, code.Line()-5) 235 //assert.Equal(t, msg.Msg().Text(), "a=1") 236 237 msg = logger.Debugf("a=%d", log.T(func() []interface{} { 238 return []interface{}{1} 239 })) 240 assert.Equal(t, msg.Level, log.DebugLevel) 241 assert.Equal(t, msg.File, code.File()) 242 assert.Equal(t, msg.Line, code.Line()-5) 243 //assert.Equal(t, msg.Msg().Text(), "a=1") 244 245 msg = logger.Info("a", "=", "1") 246 assert.Equal(t, msg.Level, log.InfoLevel) 247 assert.Equal(t, msg.File, code.File()) 248 assert.Equal(t, msg.Line, code.Line()-3) 249 //assert.Equal(t, msg.Msg().Text(), "a=1") 250 251 msg = logger.Infof("a=%d", 1) 252 assert.Equal(t, msg.Level, log.InfoLevel) 253 assert.Equal(t, msg.File, code.File()) 254 assert.Equal(t, msg.Line, code.Line()-3) 255 //assert.Equal(t, msg.Msg().Text(), "a=1") 256 257 msg = logger.Info(log.T(func() []interface{} { 258 return []interface{}{"a", "=", "1"} 259 })) 260 assert.Equal(t, msg.Level, log.InfoLevel) 261 assert.Equal(t, msg.File, code.File()) 262 assert.Equal(t, msg.Line, code.Line()-5) 263 //assert.Equal(t, msg.Msg().Text(), "a=1") 264 265 msg = logger.Infof("a=%d", log.T(func() []interface{} { 266 return []interface{}{1} 267 })) 268 assert.Equal(t, msg.Level, log.InfoLevel) 269 assert.Equal(t, msg.File, code.File()) 270 assert.Equal(t, msg.Line, code.Line()-5) 271 //assert.Equal(t, msg.Msg().Text(), "a=1") 272 273 msg = logger.Warn("a", "=", "1") 274 assert.Equal(t, msg.Level, log.WarnLevel) 275 assert.Equal(t, msg.File, code.File()) 276 assert.Equal(t, msg.Line, code.Line()-3) 277 //assert.Equal(t, msg.Msg().Text(), "a=1") 278 279 msg = logger.Warnf("a=%d", 1) 280 assert.Equal(t, msg.Level, log.WarnLevel) 281 assert.Equal(t, msg.File, code.File()) 282 assert.Equal(t, msg.Line, code.Line()-3) 283 //assert.Equal(t, msg.Msg().Text(), "a=1") 284 285 msg = logger.Warn(log.T(func() []interface{} { 286 return []interface{}{"a", "=", "1"} 287 })) 288 assert.Equal(t, msg.Level, log.WarnLevel) 289 assert.Equal(t, msg.File, code.File()) 290 assert.Equal(t, msg.Line, code.Line()-5) 291 //assert.Equal(t, msg.Msg().Text(), "a=1") 292 293 msg = logger.Warnf("a=%d", log.T(func() []interface{} { 294 return []interface{}{1} 295 })) 296 assert.Equal(t, msg.Level, log.WarnLevel) 297 assert.Equal(t, msg.File, code.File()) 298 assert.Equal(t, msg.Line, code.Line()-5) 299 //assert.Equal(t, msg.Msg().Text(), "a=1") 300 301 msg = logger.Error("a", "=", "1") 302 assert.Equal(t, msg.Level, log.ErrorLevel) 303 assert.Equal(t, msg.File, code.File()) 304 assert.Equal(t, msg.Line, code.Line()-3) 305 //assert.Equal(t, msg.Msg().Text(), "a=1") 306 307 msg = logger.Errorf("a=%d", 1) 308 assert.Equal(t, msg.Level, log.ErrorLevel) 309 assert.Equal(t, msg.File, code.File()) 310 assert.Equal(t, msg.Line, code.Line()-3) 311 //assert.Equal(t, msg.Msg().Text(), "a=1") 312 313 msg = logger.Error(log.T(func() []interface{} { 314 return []interface{}{"a", "=", "1"} 315 })) 316 assert.Equal(t, msg.Level, log.ErrorLevel) 317 assert.Equal(t, msg.File, code.File()) 318 assert.Equal(t, msg.Line, code.Line()-5) 319 //assert.Equal(t, msg.Msg().Text(), "a=1") 320 321 msg = logger.Errorf("a=%d", log.T(func() []interface{} { 322 return []interface{}{1} 323 })) 324 assert.Equal(t, msg.Level, log.ErrorLevel) 325 assert.Equal(t, msg.File, code.File()) 326 assert.Equal(t, msg.Line, code.Line()-5) 327 //assert.Equal(t, msg.Msg().Text(), "a=1") 328 329 msg = logger.Panic(errors.New("error")) 330 assert.Equal(t, msg.Level, log.PanicLevel) 331 assert.Equal(t, msg.File, code.File()) 332 assert.Equal(t, msg.Line, code.Line()-3) 333 //assert.Equal(t, msg.Msg().Text(), "error") 334 335 msg = logger.Panicf("error:%d", 404) 336 assert.Equal(t, msg.Level, log.PanicLevel) 337 assert.Equal(t, msg.File, code.File()) 338 assert.Equal(t, msg.Line, code.Line()-3) 339 //assert.Equal(t, msg.Msg().Text(), "error:404") 340 341 msg = logger.Fatal("a", "=", "1") 342 assert.Equal(t, msg.Level, log.FatalLevel) 343 assert.Equal(t, msg.File, code.File()) 344 assert.Equal(t, msg.Line, code.Line()-3) 345 //assert.Equal(t, msg.Msg().Text(), "a=1") 346 347 msg = logger.Fatalf("a=%d", 1) 348 assert.Equal(t, msg.Level, log.FatalLevel) 349 assert.Equal(t, msg.File, code.File()) 350 assert.Equal(t, msg.Line, code.Line()-3) 351 //assert.Equal(t, msg.Msg().Text(), "a=1") 352 } 353 354 func TestEntry(t *testing.T) { 355 356 config := ` 357 <?xml version="1.0" encoding="UTF-8"?> 358 <Configuration> 359 <Appenders> 360 <Console name="Console"/> 361 </Appenders> 362 <Loggers> 363 <Root level="trace"> 364 <AppenderRef ref="Console"/> 365 </Root> 366 </Loggers> 367 </Configuration> 368 ` 369 370 err := log.RefreshBuffer(config, ".xml") 371 if err != nil { 372 t.Fatal(err) 373 } 374 375 ctx := context.WithValue(context.Background(), "trace", "110110") 376 logger := log.GetLogger("xxx") 377 378 const tagIn = "__in" 379 ctxLogger := logger.WithContext(ctx) 380 381 msg := ctxLogger.Trace("Level:", "trace") 382 assert.Equal(t, msg.Level, log.TraceLevel) 383 assert.Equal(t, msg.File, code.File()) 384 assert.Equal(t, msg.Line, code.Line()-3) 385 assert.Equal(t, msg.Context, ctx) 386 //assert.Equal(t, msg.Msg().Text(), "Level:trace") 387 388 msg = ctxLogger.Tracef("Level:%s", "trace") 389 assert.Equal(t, msg.Level, log.TraceLevel) 390 assert.Equal(t, msg.File, code.File()) 391 assert.Equal(t, msg.Line, code.Line()-3) 392 assert.Equal(t, msg.Context, ctx) 393 //assert.Equal(t, msg.Msg().Text(), "Level:trace") 394 395 msg = ctxLogger.Debug("Level:", "debug") 396 assert.Equal(t, msg.Level, log.DebugLevel) 397 assert.Equal(t, msg.File, code.File()) 398 assert.Equal(t, msg.Line, code.Line()-3) 399 assert.Equal(t, msg.Context, ctx) 400 //assert.Equal(t, msg.Msg().Text(), "Level:debug") 401 402 msg = ctxLogger.Debugf("Level:%s", "debug") 403 assert.Equal(t, msg.Level, log.DebugLevel) 404 assert.Equal(t, msg.File, code.File()) 405 assert.Equal(t, msg.Line, code.Line()-3) 406 assert.Equal(t, msg.Context, ctx) 407 //assert.Equal(t, msg.Msg().Text(), "Level:debug") 408 409 msg = ctxLogger.Info("Level:", "info") 410 assert.Equal(t, msg.Level, log.InfoLevel) 411 assert.Equal(t, msg.File, code.File()) 412 assert.Equal(t, msg.Line, code.Line()-3) 413 assert.Equal(t, msg.Context, ctx) 414 //assert.Equal(t, msg.Msg().Text(), "Level:info") 415 416 msg = ctxLogger.Infof("Level:%s", "info") 417 assert.Equal(t, msg.Level, log.InfoLevel) 418 assert.Equal(t, msg.File, code.File()) 419 assert.Equal(t, msg.Line, code.Line()-3) 420 assert.Equal(t, msg.Context, ctx) 421 //assert.Equal(t, msg.Msg().Text(), "Level:info") 422 423 msg = ctxLogger.Warn("Level:", "warn") 424 assert.Equal(t, msg.Level, log.WarnLevel) 425 assert.Equal(t, msg.File, code.File()) 426 assert.Equal(t, msg.Line, code.Line()-3) 427 assert.Equal(t, msg.Context, ctx) 428 //assert.Equal(t, msg.Msg().Text(), "Level:warn") 429 430 msg = ctxLogger.Warnf("Level:%s", "warn") 431 assert.Equal(t, msg.Level, log.WarnLevel) 432 assert.Equal(t, msg.File, code.File()) 433 assert.Equal(t, msg.Line, code.Line()-3) 434 assert.Equal(t, msg.Context, ctx) 435 //assert.Equal(t, msg.Msg().Text(), "Level:warn") 436 437 msg = ctxLogger.Error("Level:", "error") 438 assert.Equal(t, msg.Level, log.ErrorLevel) 439 assert.Equal(t, msg.File, code.File()) 440 assert.Equal(t, msg.Line, code.Line()-3) 441 assert.Equal(t, msg.Context, ctx) 442 //assert.Equal(t, msg.Msg().Text(), "Level:error") 443 444 msg = ctxLogger.Errorf("Level:%s", "error") 445 assert.Equal(t, msg.Level, log.ErrorLevel) 446 assert.Equal(t, msg.File, code.File()) 447 assert.Equal(t, msg.Line, code.Line()-3) 448 assert.Equal(t, msg.Context, ctx) 449 //assert.Equal(t, msg.Msg().Text(), "Level:error") 450 451 msg = ctxLogger.Panic("Level:", "panic") 452 assert.Equal(t, msg.Level, log.PanicLevel) 453 assert.Equal(t, msg.File, code.File()) 454 assert.Equal(t, msg.Line, code.Line()-3) 455 assert.Equal(t, msg.Context, ctx) 456 //assert.Equal(t, msg.Msg().Text(), "Level:panic") 457 458 msg = ctxLogger.Panicf("Level:%s", "panic") 459 assert.Equal(t, msg.Level, log.PanicLevel) 460 assert.Equal(t, msg.File, code.File()) 461 assert.Equal(t, msg.Line, code.Line()-3) 462 assert.Equal(t, msg.Context, ctx) 463 //assert.Equal(t, msg.Msg().Text(), "Level:panic") 464 465 msg = ctxLogger.Fatal("Level:", "fatal") 466 assert.Equal(t, msg.Level, log.FatalLevel) 467 assert.Equal(t, msg.File, code.File()) 468 assert.Equal(t, msg.Line, code.Line()-3) 469 assert.Equal(t, msg.Context, ctx) 470 //assert.Equal(t, msg.Msg().Text(), "Level:fatal") 471 472 msg = ctxLogger.Fatalf("Level:%s", "fatal") 473 assert.Equal(t, msg.Level, log.FatalLevel) 474 assert.Equal(t, msg.File, code.File()) 475 assert.Equal(t, msg.Line, code.Line()-3) 476 assert.Equal(t, msg.Context, ctx) 477 //assert.Equal(t, msg.Msg().Text(), "Level:fatal") 478 479 msg = ctxLogger.Trace(log.T(func() []interface{} { 480 return []interface{}{"Level:", "trace"} 481 })) 482 assert.Equal(t, msg.Level, log.TraceLevel) 483 assert.Equal(t, msg.File, code.File()) 484 assert.Equal(t, msg.Line, code.Line()-5) 485 assert.Equal(t, msg.Context, ctx) 486 //assert.Equal(t, msg.Msg().Text(), "Level:trace") 487 488 msg = ctxLogger.Tracef("Level:%s", log.T(func() []interface{} { 489 return []interface{}{"trace"} 490 })) 491 assert.Equal(t, msg.Level, log.TraceLevel) 492 assert.Equal(t, msg.File, code.File()) 493 assert.Equal(t, msg.Line, code.Line()-5) 494 assert.Equal(t, msg.Context, ctx) 495 //assert.Equal(t, msg.Msg().Text(), "Level:trace") 496 497 msg = ctxLogger.Debug(log.T(func() []interface{} { 498 return []interface{}{"Level:", "debug"} 499 })) 500 assert.Equal(t, msg.Level, log.DebugLevel) 501 assert.Equal(t, msg.File, code.File()) 502 assert.Equal(t, msg.Line, code.Line()-5) 503 assert.Equal(t, msg.Context, ctx) 504 //assert.Equal(t, msg.Msg().Text(), "Level:debug") 505 506 msg = ctxLogger.Debugf("Level:%s", log.T(func() []interface{} { 507 return []interface{}{"debug"} 508 })) 509 assert.Equal(t, msg.Level, log.DebugLevel) 510 assert.Equal(t, msg.File, code.File()) 511 assert.Equal(t, msg.Line, code.Line()-5) 512 assert.Equal(t, msg.Context, ctx) 513 //assert.Equal(t, msg.Msg().Text(), "Level:debug") 514 515 msg = ctxLogger.Info(log.T(func() []interface{} { 516 return []interface{}{"Level:", "info"} 517 })) 518 assert.Equal(t, msg.Level, log.InfoLevel) 519 assert.Equal(t, msg.File, code.File()) 520 assert.Equal(t, msg.Line, code.Line()-5) 521 assert.Equal(t, msg.Context, ctx) 522 //assert.Equal(t, msg.Msg().Text(), "Level:info") 523 524 msg = ctxLogger.Infof("Level:%s", log.T(func() []interface{} { 525 return []interface{}{"info"} 526 })) 527 assert.Equal(t, msg.Level, log.InfoLevel) 528 assert.Equal(t, msg.File, code.File()) 529 assert.Equal(t, msg.Line, code.Line()-5) 530 assert.Equal(t, msg.Context, ctx) 531 //assert.Equal(t, msg.Msg().Text(), "Level:info") 532 533 msg = ctxLogger.Warn(log.T(func() []interface{} { 534 return []interface{}{"Level:", "warn"} 535 })) 536 assert.Equal(t, msg.Level, log.WarnLevel) 537 assert.Equal(t, msg.File, code.File()) 538 assert.Equal(t, msg.Line, code.Line()-5) 539 assert.Equal(t, msg.Context, ctx) 540 //assert.Equal(t, msg.Msg().Text(), "Level:warn") 541 542 msg = ctxLogger.Warnf("Level:%s", log.T(func() []interface{} { 543 return []interface{}{"warn"} 544 })) 545 assert.Equal(t, msg.Level, log.WarnLevel) 546 assert.Equal(t, msg.File, code.File()) 547 assert.Equal(t, msg.Line, code.Line()-5) 548 assert.Equal(t, msg.Context, ctx) 549 //assert.Equal(t, msg.Msg().Text(), "Level:warn") 550 551 msg = ctxLogger.Error(log.T(func() []interface{} { 552 return []interface{}{"Level:", "error"} 553 })) 554 assert.Equal(t, msg.Level, log.ErrorLevel) 555 assert.Equal(t, msg.File, code.File()) 556 assert.Equal(t, msg.Line, code.Line()-5) 557 assert.Equal(t, msg.Context, ctx) 558 //assert.Equal(t, msg.Msg().Text(), "Level:error") 559 560 msg = ctxLogger.Errorf("Level:%s", log.T(func() []interface{} { 561 return []interface{}{"error"} 562 })) 563 assert.Equal(t, msg.Level, log.ErrorLevel) 564 assert.Equal(t, msg.File, code.File()) 565 assert.Equal(t, msg.Line, code.Line()-5) 566 assert.Equal(t, msg.Context, ctx) 567 //assert.Equal(t, msg.Msg().Text(), "Level:error") 568 569 ctxLogger = ctxLogger.WithTag(tagIn) 570 571 msg = ctxLogger.Trace("Level:", "trace") 572 assert.Equal(t, msg.Level, log.TraceLevel) 573 assert.Equal(t, msg.File, code.File()) 574 assert.Equal(t, msg.Line, code.Line()-3) 575 assert.Equal(t, msg.Tag, tagIn) 576 assert.Equal(t, msg.Context, ctx) 577 //assert.Equal(t, msg.Msg().Text(), "Level:trace") 578 579 msg = ctxLogger.Tracef("Level:%s", "trace") 580 assert.Equal(t, msg.Level, log.TraceLevel) 581 assert.Equal(t, msg.File, code.File()) 582 assert.Equal(t, msg.Line, code.Line()-3) 583 assert.Equal(t, msg.Tag, tagIn) 584 assert.Equal(t, msg.Context, ctx) 585 //assert.Equal(t, msg.Msg().Text(), "Level:trace") 586 587 msg = ctxLogger.Debug("Level:", "debug") 588 assert.Equal(t, msg.Level, log.DebugLevel) 589 assert.Equal(t, msg.File, code.File()) 590 assert.Equal(t, msg.Line, code.Line()-3) 591 assert.Equal(t, msg.Tag, tagIn) 592 assert.Equal(t, msg.Context, ctx) 593 //assert.Equal(t, msg.Msg().Text(), "Level:debug") 594 595 msg = ctxLogger.Debugf("Level:%s", "debug") 596 assert.Equal(t, msg.Level, log.DebugLevel) 597 assert.Equal(t, msg.File, code.File()) 598 assert.Equal(t, msg.Line, code.Line()-3) 599 assert.Equal(t, msg.Tag, tagIn) 600 assert.Equal(t, msg.Context, ctx) 601 //assert.Equal(t, msg.Msg().Text(), "Level:debug") 602 603 msg = ctxLogger.Info("Level:", "info") 604 assert.Equal(t, msg.Level, log.InfoLevel) 605 assert.Equal(t, msg.File, code.File()) 606 assert.Equal(t, msg.Line, code.Line()-3) 607 assert.Equal(t, msg.Tag, tagIn) 608 assert.Equal(t, msg.Context, ctx) 609 //assert.Equal(t, msg.Msg().Text(), "Level:info") 610 611 msg = ctxLogger.Infof("Level:%s", "info") 612 assert.Equal(t, msg.Level, log.InfoLevel) 613 assert.Equal(t, msg.File, code.File()) 614 assert.Equal(t, msg.Line, code.Line()-3) 615 assert.Equal(t, msg.Tag, tagIn) 616 assert.Equal(t, msg.Context, ctx) 617 //assert.Equal(t, msg.Msg().Text(), "Level:info") 618 619 msg = ctxLogger.Warn("Level:", "warn") 620 assert.Equal(t, msg.Level, log.WarnLevel) 621 assert.Equal(t, msg.File, code.File()) 622 assert.Equal(t, msg.Line, code.Line()-3) 623 assert.Equal(t, msg.Tag, tagIn) 624 assert.Equal(t, msg.Context, ctx) 625 //assert.Equal(t, msg.Msg().Text(), "Level:warn") 626 627 msg = ctxLogger.Warnf("Level:%s", "warn") 628 assert.Equal(t, msg.Level, log.WarnLevel) 629 assert.Equal(t, msg.File, code.File()) 630 assert.Equal(t, msg.Line, code.Line()-3) 631 assert.Equal(t, msg.Tag, tagIn) 632 assert.Equal(t, msg.Context, ctx) 633 //assert.Equal(t, msg.Msg().Text(), "Level:warn") 634 635 msg = ctxLogger.Error("Level:", "error") 636 assert.Equal(t, msg.Level, log.ErrorLevel) 637 assert.Equal(t, msg.File, code.File()) 638 assert.Equal(t, msg.Line, code.Line()-3) 639 assert.Equal(t, msg.Tag, tagIn) 640 assert.Equal(t, msg.Context, ctx) 641 //assert.Equal(t, msg.Msg().Text(), "Level:error") 642 643 msg = ctxLogger.Errorf("Level:%s", "error") 644 assert.Equal(t, msg.Level, log.ErrorLevel) 645 assert.Equal(t, msg.File, code.File()) 646 assert.Equal(t, msg.Line, code.Line()-3) 647 assert.Equal(t, msg.Tag, tagIn) 648 assert.Equal(t, msg.Context, ctx) 649 //assert.Equal(t, msg.Msg().Text(), "Level:error") 650 651 msg = ctxLogger.Panic("Level:", "panic") 652 assert.Equal(t, msg.Level, log.PanicLevel) 653 assert.Equal(t, msg.File, code.File()) 654 assert.Equal(t, msg.Line, code.Line()-3) 655 assert.Equal(t, msg.Tag, tagIn) 656 assert.Equal(t, msg.Context, ctx) 657 //assert.Equal(t, msg.Msg().Text(), "Level:panic") 658 659 msg = ctxLogger.Panicf("Level:%s", "panic") 660 assert.Equal(t, msg.Level, log.PanicLevel) 661 assert.Equal(t, msg.File, code.File()) 662 assert.Equal(t, msg.Line, code.Line()-3) 663 assert.Equal(t, msg.Tag, tagIn) 664 assert.Equal(t, msg.Context, ctx) 665 //assert.Equal(t, msg.Msg().Text(), "Level:panic") 666 667 msg = ctxLogger.Fatal("Level:", "fatal") 668 assert.Equal(t, msg.Level, log.FatalLevel) 669 assert.Equal(t, msg.File, code.File()) 670 assert.Equal(t, msg.Line, code.Line()-3) 671 assert.Equal(t, msg.Tag, tagIn) 672 assert.Equal(t, msg.Context, ctx) 673 //assert.Equal(t, msg.Msg().Text(), "Level:fatal") 674 675 msg = ctxLogger.Fatalf("Level:%s", "fatal") 676 assert.Equal(t, msg.Level, log.FatalLevel) 677 assert.Equal(t, msg.File, code.File()) 678 assert.Equal(t, msg.Line, code.Line()-3) 679 assert.Equal(t, msg.Tag, tagIn) 680 assert.Equal(t, msg.Context, ctx) 681 //assert.Equal(t, msg.Msg().Text(), "Level:fatal") 682 683 tagLogger := logger.WithTag(tagIn) 684 685 msg = tagLogger.WithContext(ctx).Trace("Level:", "trace") 686 assert.Equal(t, msg.Level, log.TraceLevel) 687 assert.Equal(t, msg.File, code.File()) 688 assert.Equal(t, msg.Line, code.Line()-3) 689 assert.Equal(t, msg.Tag, tagIn) 690 assert.Equal(t, msg.Context, ctx) 691 //assert.Equal(t, msg.Msg().Text(), "Level:trace") 692 693 msg = tagLogger.WithContext(ctx).Tracef("Level:%s", "trace") 694 assert.Equal(t, msg.Level, log.TraceLevel) 695 assert.Equal(t, msg.File, code.File()) 696 assert.Equal(t, msg.Line, code.Line()-3) 697 assert.Equal(t, msg.Tag, tagIn) 698 assert.Equal(t, msg.Context, ctx) 699 //assert.Equal(t, msg.Msg().Text(), "Level:trace") 700 701 msg = tagLogger.WithContext(ctx).Debug("Level:", "debug") 702 assert.Equal(t, msg.Level, log.DebugLevel) 703 assert.Equal(t, msg.File, code.File()) 704 assert.Equal(t, msg.Line, code.Line()-3) 705 assert.Equal(t, msg.Tag, tagIn) 706 assert.Equal(t, msg.Context, ctx) 707 //assert.Equal(t, msg.Msg().Text(), "Level:debug") 708 709 msg = tagLogger.WithContext(ctx).Debugf("Level:%s", "debug") 710 assert.Equal(t, msg.Level, log.DebugLevel) 711 assert.Equal(t, msg.File, code.File()) 712 assert.Equal(t, msg.Line, code.Line()-3) 713 assert.Equal(t, msg.Tag, tagIn) 714 assert.Equal(t, msg.Context, ctx) 715 //assert.Equal(t, msg.Msg().Text(), "Level:debug") 716 717 msg = tagLogger.WithContext(ctx).Info("Level:", "info") 718 assert.Equal(t, msg.Level, log.InfoLevel) 719 assert.Equal(t, msg.File, code.File()) 720 assert.Equal(t, msg.Line, code.Line()-3) 721 assert.Equal(t, msg.Tag, tagIn) 722 assert.Equal(t, msg.Context, ctx) 723 //assert.Equal(t, msg.Msg().Text(), "Level:info") 724 725 msg = tagLogger.WithContext(ctx).Infof("Level:%s", "info") 726 assert.Equal(t, msg.Level, log.InfoLevel) 727 assert.Equal(t, msg.File, code.File()) 728 assert.Equal(t, msg.Line, code.Line()-3) 729 assert.Equal(t, msg.Tag, tagIn) 730 assert.Equal(t, msg.Context, ctx) 731 //assert.Equal(t, msg.Msg().Text(), "Level:info") 732 733 msg = tagLogger.WithContext(ctx).Warn("Level:", "warn") 734 assert.Equal(t, msg.Level, log.WarnLevel) 735 assert.Equal(t, msg.File, code.File()) 736 assert.Equal(t, msg.Line, code.Line()-3) 737 assert.Equal(t, msg.Tag, tagIn) 738 assert.Equal(t, msg.Context, ctx) 739 //assert.Equal(t, msg.Msg().Text(), "Level:warn") 740 741 msg = tagLogger.WithContext(ctx).Warnf("Level:%s", "warn") 742 assert.Equal(t, msg.Level, log.WarnLevel) 743 assert.Equal(t, msg.File, code.File()) 744 assert.Equal(t, msg.Line, code.Line()-3) 745 assert.Equal(t, msg.Tag, tagIn) 746 assert.Equal(t, msg.Context, ctx) 747 //assert.Equal(t, msg.Msg().Text(), "Level:warn") 748 749 msg = tagLogger.WithContext(ctx).Error("Level:", "error") 750 assert.Equal(t, msg.Level, log.ErrorLevel) 751 assert.Equal(t, msg.File, code.File()) 752 assert.Equal(t, msg.Line, code.Line()-3) 753 assert.Equal(t, msg.Tag, tagIn) 754 assert.Equal(t, msg.Context, ctx) 755 //assert.Equal(t, msg.Msg().Text(), "Level:error") 756 757 msg = tagLogger.WithContext(ctx).Errorf("Level:%s", "error") 758 assert.Equal(t, msg.Level, log.ErrorLevel) 759 assert.Equal(t, msg.File, code.File()) 760 assert.Equal(t, msg.Line, code.Line()-3) 761 assert.Equal(t, msg.Tag, tagIn) 762 assert.Equal(t, msg.Context, ctx) 763 //assert.Equal(t, msg.Msg().Text(), "Level:error") 764 765 msg = tagLogger.WithContext(ctx).Panic("Level:", "panic") 766 assert.Equal(t, msg.Level, log.PanicLevel) 767 assert.Equal(t, msg.File, code.File()) 768 assert.Equal(t, msg.Line, code.Line()-3) 769 assert.Equal(t, msg.Tag, tagIn) 770 assert.Equal(t, msg.Context, ctx) 771 //assert.Equal(t, msg.Msg().Text(), "Level:panic") 772 773 msg = tagLogger.WithContext(ctx).Panicf("Level:%s", "panic") 774 assert.Equal(t, msg.Level, log.PanicLevel) 775 assert.Equal(t, msg.File, code.File()) 776 assert.Equal(t, msg.Line, code.Line()-3) 777 assert.Equal(t, msg.Tag, tagIn) 778 assert.Equal(t, msg.Context, ctx) 779 //assert.Equal(t, msg.Msg().Text(), "Level:panic") 780 781 msg = tagLogger.WithContext(ctx).Fatal("Level:", "fatal") 782 assert.Equal(t, msg.Level, log.FatalLevel) 783 assert.Equal(t, msg.File, code.File()) 784 assert.Equal(t, msg.Line, code.Line()-3) 785 assert.Equal(t, msg.Tag, tagIn) 786 assert.Equal(t, msg.Context, ctx) 787 //assert.Equal(t, msg.Msg().Text(), "Level:fatal") 788 789 msg = tagLogger.WithContext(ctx).Fatalf("Level:%s", "fatal") 790 assert.Equal(t, msg.Level, log.FatalLevel) 791 assert.Equal(t, msg.File, code.File()) 792 assert.Equal(t, msg.Line, code.Line()-3) 793 assert.Equal(t, msg.Tag, tagIn) 794 assert.Equal(t, msg.Context, ctx) 795 //assert.Equal(t, msg.Msg().Text(), "Level:fatal") 796 }