github.com/xwi88/log4go@v0.0.6/console_writer_test.go (about)

     1  package log4go
     2  
     3  import (
     4  	"testing"
     5  )
     6  
     7  func generateNewConsoleWriterWithOptions(level string, color, fullColor bool) *ConsoleWriter {
     8  	options := ConsoleWriterOptions{
     9  		Level:     level,
    10  		Color:     color,
    11  		FullColor: fullColor,
    12  	}
    13  	w := NewConsoleWriterWithOptions(options)
    14  	w.SetColor(color)
    15  	w.SetFullColor(fullColor)
    16  	return w
    17  }
    18  
    19  func generateRegisterConsoleWriter(lg *Logger, w *ConsoleWriter, fullPath, funcName bool, layout string) {
    20  	lg.Register(w)
    21  	if layout == "" {
    22  		lg.SetLayout("2006-01-02 15:04:05")
    23  	} else {
    24  		lg.SetLayout(layout)
    25  	}
    26  	lg.WithFullPath(fullPath)
    27  	lg.WithFuncName(funcName)
    28  }
    29  
    30  func Test_NewConsoleWriterWithStruct(t *testing.T) {
    31  	c := &ConsoleWriter{}
    32  	t.Logf("%#v", c)
    33  }
    34  
    35  func Test_NewConsoleWriter(t *testing.T) {
    36  	NewConsoleWriter()
    37  }
    38  
    39  func Test_NewConsoleWriterWithNilLogger(t *testing.T) {
    40  	var color, fullColor, fullPath, funcName bool
    41  	var layout string
    42  	records := make(chan *Record, uint(0))
    43  	close(records)
    44  	loggerDefaultTest := newLoggerWithRecords(records)
    45  	c := generateNewConsoleWriterWithOptions(LevelFlagDebug, color, fullColor)
    46  	var name = "console nil logger"
    47  	defer func() {
    48  		if err := recover(); err != nil {
    49  			t.Errorf("error occur: %v", err)
    50  			loggerDefaultTest = newLoggerWithRecords(records)
    51  			generateRegisterConsoleWriter(loggerDefaultTest, c, fullPath, funcName, layout)
    52  			defer loggerDefaultTest.Close()
    53  			loggerDefaultTest.Debug("log4go by %s", name)
    54  			loggerDefaultTest.Info("log4go by %s", name)
    55  			loggerDefaultTest.Alert("%#v", loggerDefaultTest)
    56  		}
    57  	}()
    58  	generateRegisterConsoleWriter(loggerDefaultTest, c, fullPath, funcName, layout)
    59  
    60  }
    61  
    62  func Test_NewConsoleWriterWithGlobalSet(t *testing.T) {
    63  	var color, fullColor bool
    64  	var layout string
    65  	loggerDefault = NewLogger()
    66  
    67  	defer Close()
    68  	layout = "20060102 150405"
    69  	SetLayout(layout)
    70  	SetLevel(INFO)
    71  	WithFullPath(true)
    72  	WithFuncName(true)
    73  	c := generateNewConsoleWriterWithOptions(LevelFlagInfo, color, fullColor)
    74  	Register(c)
    75  
    76  	var name = "console with default global"
    77  	Debug("log4go by %s", name)
    78  	Info("log4go by %s", name)
    79  	Info("")
    80  	Notice("log4go by %s", name)
    81  	Warn("log4go by %s", name)
    82  	Error("log4go by %s", name)
    83  	Critical("log4go by %s", name)
    84  	Alert("log4go by %s", name)
    85  	Emergency("log4go by %s", name)
    86  }
    87  
    88  func Test_NewConsoleWriterWithLevel(t *testing.T) {
    89  	var color, fullColor, fullPath, funcName bool
    90  	var layout string
    91  
    92  	records := make(chan *Record, uint(2048))
    93  	loggerDefaultTest := newLoggerWithRecords(records)
    94  	loggerDefaultTest.SetLevel(DEBUG)
    95  	defer loggerDefaultTest.Close()
    96  
    97  	c := generateNewConsoleWriterWithOptions(LevelFlagInfo, color, fullColor)
    98  	var name = "console level"
    99  	generateRegisterConsoleWriter(loggerDefaultTest, c, fullPath, funcName, layout)
   100  	loggerDefaultTest.Debug("log4go by %s", name)
   101  	loggerDefaultTest.Info("log4go by %s", name)
   102  	loggerDefaultTest.Info("")
   103  	loggerDefaultTest.Notice("log4go by %s", name)
   104  	loggerDefaultTest.Warn("log4go by %s", name)
   105  	loggerDefaultTest.Error("log4go by %s", name)
   106  	loggerDefaultTest.Critical("log4go by %s", name)
   107  	loggerDefaultTest.Alert("log4go by %s", name)
   108  	loggerDefaultTest.Emergency("log4go by %s", name)
   109  	loggerDefaultTest.Alert("%#v", loggerDefaultTest)
   110  }
   111  
   112  func Test_NewConsoleWriterWithLevel2(t *testing.T) {
   113  	var color, fullColor, fullPath, funcName bool
   114  	var layout string
   115  
   116  	records := make(chan *Record, uint(2048))
   117  	loggerDefaultTest := newLoggerWithRecords(records)
   118  	loggerDefaultTest.SetLevel(NOTICE)
   119  	defer loggerDefaultTest.Close()
   120  
   121  	c := generateNewConsoleWriterWithOptions(LevelFlagDebug, color, fullColor)
   122  	var name = "console level2"
   123  	generateRegisterConsoleWriter(loggerDefaultTest, c, fullPath, funcName, layout)
   124  	loggerDefaultTest.Debug("log4go by %s", name)
   125  	loggerDefaultTest.Info("log4go by %s", name)
   126  	loggerDefaultTest.Notice("log4go by %s", name)
   127  	loggerDefaultTest.Notice("log4go by fmt ", 123, " super ", name)
   128  	loggerDefaultTest.Warn("log4go by %s", name)
   129  	loggerDefaultTest.Error("log4go by %s", name)
   130  	loggerDefaultTest.Critical("log4go by %s", name)
   131  	loggerDefaultTest.Alert("log4go by %s", name)
   132  	loggerDefaultTest.Emergency("log4go by %s", name)
   133  	loggerDefaultTest.Alert("%#v", loggerDefaultTest)
   134  }
   135  
   136  func Test_NewConsoleWriterWithColor(t *testing.T) {
   137  	var color, fullColor, fullPath, funcName bool
   138  	var layout string
   139  
   140  	records := make(chan *Record, uint(2048))
   141  	loggerDefaultTest := newLoggerWithRecords(records)
   142  	defer loggerDefaultTest.Close()
   143  
   144  	color = true
   145  	c := generateNewConsoleWriterWithOptions(LevelFlagDebug, color, fullColor)
   146  	var name = "console color"
   147  	generateRegisterConsoleWriter(loggerDefaultTest, c, fullPath, funcName, layout)
   148  	loggerDefaultTest.Debug("log4go by %s", name)
   149  	loggerDefaultTest.Info("log4go by %s", name)
   150  	loggerDefaultTest.Notice("log4go by %s", name)
   151  	loggerDefaultTest.Warn("log4go by %s", name)
   152  	loggerDefaultTest.Error("log4go by %s", name)
   153  	loggerDefaultTest.Critical("log4go by %s", name)
   154  	loggerDefaultTest.Alert("log4go by %s", name)
   155  	loggerDefaultTest.Emergency("log4go by %s", name)
   156  	loggerDefaultTest.Alert("%#v", loggerDefaultTest)
   157  }
   158  
   159  func Test_NewConsoleWriterWithFullColor(t *testing.T) {
   160  	var color, fullColor, fullPath, funcName bool
   161  	var layout string
   162  
   163  	records := make(chan *Record, uint(2048))
   164  	loggerDefaultTest := newLoggerWithRecords(records)
   165  	defer loggerDefaultTest.Close()
   166  
   167  	color = true
   168  	fullColor = true
   169  	c := generateNewConsoleWriterWithOptions(LevelFlagDebug, color, fullColor)
   170  	// c := generateNewConsoleWriterWithOptions(LevelFlagEmergency, color, fullColor)
   171  	var name = "console full color"
   172  	generateRegisterConsoleWriter(loggerDefaultTest, c, fullPath, funcName, layout)
   173  	loggerDefaultTest.Debug("log4go by %s", name)
   174  	loggerDefaultTest.Info("log4go by %s", name)
   175  	loggerDefaultTest.Notice("log4go by %s", name)
   176  	loggerDefaultTest.Warn("log4go by %s", name)
   177  	loggerDefaultTest.Error("log4go by %s", name)
   178  	loggerDefaultTest.Critical("log4go by %s", name)
   179  	loggerDefaultTest.Alert("log4go by %s", name)
   180  	loggerDefaultTest.Emergency("log4go by %s", name)
   181  	loggerDefaultTest.Alert("%#v", loggerDefaultTest)
   182  }
   183  
   184  func Test_NewConsoleWriterWithFullPath(t *testing.T) {
   185  	var color, fullColor, fullPath, funcName bool
   186  	var layout string
   187  
   188  	records := make(chan *Record, uint(2048))
   189  	loggerDefaultTest := newLoggerWithRecords(records)
   190  	defer loggerDefaultTest.Close()
   191  
   192  	color = true
   193  	fullPath = true
   194  	c := generateNewConsoleWriterWithOptions(LevelFlagDebug, color, fullColor)
   195  	var name = "console full path"
   196  	generateRegisterConsoleWriter(loggerDefaultTest, c, fullPath, funcName, layout)
   197  	loggerDefaultTest.Debug("log4go by %s", name)
   198  	loggerDefaultTest.Info("log4go by %s", name)
   199  	loggerDefaultTest.Notice("log4go by %s", name)
   200  	loggerDefaultTest.Warn("log4go by %s", name)
   201  	loggerDefaultTest.Error("log4go by %s", name)
   202  	loggerDefaultTest.Critical("log4go by %s", name)
   203  	loggerDefaultTest.Alert("log4go by %s", name)
   204  	loggerDefaultTest.Emergency("log4go by %s", name)
   205  	loggerDefaultTest.Alert("%#v", loggerDefaultTest)
   206  }
   207  
   208  func Test_NewConsoleWriterWithFuncName(t *testing.T) {
   209  	var color, fullColor, fullPath, funcName bool
   210  	var layout string
   211  
   212  	records := make(chan *Record, uint(2048))
   213  	loggerDefaultTest := newLoggerWithRecords(records)
   214  	defer loggerDefaultTest.Close()
   215  
   216  	color = true
   217  	funcName = true
   218  	c := generateNewConsoleWriterWithOptions(LevelFlagDebug, color, fullColor)
   219  	var name = "console func name"
   220  	generateRegisterConsoleWriter(loggerDefaultTest, c, fullPath, funcName, layout)
   221  	loggerDefaultTest.Debug("log4go by %s", name)
   222  	loggerDefaultTest.Info("log4go by %s", name)
   223  	loggerDefaultTest.Notice("log4go by %s", name)
   224  	loggerDefaultTest.Warn("log4go by %s", name)
   225  	loggerDefaultTest.Error("log4go by %s", name)
   226  	loggerDefaultTest.Critical("log4go by %s", name)
   227  	loggerDefaultTest.Alert("log4go by %s", name)
   228  	loggerDefaultTest.Emergency("log4go by %s", name)
   229  	loggerDefaultTest.Alert("%#v", loggerDefaultTest)
   230  }
   231  
   232  func Test_NewConsoleWriterWithLayout(t *testing.T) {
   233  	var color, fullColor, fullPath, funcName bool
   234  	var layout string
   235  
   236  	records := make(chan *Record, uint(2048))
   237  	loggerDefaultTest := newLoggerWithRecords(records)
   238  	defer loggerDefaultTest.Close()
   239  
   240  	color = true
   241  	layout = "20060102T150405.000-0700"
   242  	c := generateNewConsoleWriterWithOptions(LevelFlagDebug, color, fullColor)
   243  	var name = "console layout"
   244  	generateRegisterConsoleWriter(loggerDefaultTest, c, fullPath, funcName, layout)
   245  	loggerDefaultTest.Debug("log4go by %s", name)
   246  	loggerDefaultTest.Info("log4go by %s", name)
   247  	loggerDefaultTest.Notice("log4go by %s", name)
   248  	loggerDefaultTest.Warn("log4go by %s", name)
   249  	loggerDefaultTest.Error("log4go by %s", name)
   250  	loggerDefaultTest.Critical("log4go by %s", name)
   251  	loggerDefaultTest.Alert("log4go by %s", name)
   252  	loggerDefaultTest.Emergency("log4go by %s", name)
   253  	loggerDefaultTest.Alert("%#v", loggerDefaultTest)
   254  }
   255  
   256  func Benchmark_NewConsoleWriter(b *testing.B) {
   257  	var color, fullColor, fullPath, funcName bool
   258  	var layout string
   259  
   260  	records := make(chan *Record, uint(2048))
   261  	loggerDefaultTest := newLoggerWithRecords(records)
   262  	loggerDefaultTest.SetLevel(DEBUG)
   263  	defer loggerDefaultTest.Close()
   264  
   265  	c := generateNewConsoleWriterWithOptions(LevelFlagDebug, color, fullColor)
   266  	var name = "console benchmark test"
   267  	generateRegisterConsoleWriter(loggerDefaultTest, c, fullPath, funcName, layout)
   268  	loggerDefaultTest.Debug("log4go by %s", name)
   269  	loggerDefaultTest.Info("log4go by %s", name)
   270  	loggerDefaultTest.Notice("log4go by %s", name)
   271  	loggerDefaultTest.Warn("log4go by %s", name)
   272  	loggerDefaultTest.Error("log4go by %s", name)
   273  	loggerDefaultTest.Critical("log4go by %s", name)
   274  	loggerDefaultTest.Alert("log4go by %s", name)
   275  	loggerDefaultTest.Emergency("log4go by %s", name)
   276  	loggerDefaultTest.Alert("%#v", loggerDefaultTest)
   277  }
   278  
   279  func Benchmark_NewConsoleWriterAll(b *testing.B) {
   280  	var color, fullColor, fullPath, funcName bool
   281  	var layout string
   282  
   283  	records := make(chan *Record, uint(2048))
   284  	loggerDefaultTest := newLoggerWithRecords(records)
   285  	loggerDefaultTest.SetLevel(DEBUG)
   286  	defer loggerDefaultTest.Close()
   287  	color = true
   288  	fullColor = true
   289  	fullPath = true
   290  	funcName = true
   291  	layout = "2006-01-02 15:04:05"
   292  
   293  	c := generateNewConsoleWriterWithOptions(LevelFlagDebug, color, fullColor)
   294  	var name = "console benchmark test"
   295  	generateRegisterConsoleWriter(loggerDefaultTest, c, fullPath, funcName, layout)
   296  	loggerDefaultTest.Debug("log4go by %s", name)
   297  	loggerDefaultTest.Info("log4go by %s", name)
   298  	loggerDefaultTest.Notice("log4go by %s", name)
   299  	loggerDefaultTest.Warn("log4go by %s", name)
   300  	loggerDefaultTest.Error("log4go by %s", name)
   301  	loggerDefaultTest.Critical("log4go by %s", name)
   302  	loggerDefaultTest.Alert("log4go by %s", name)
   303  	loggerDefaultTest.Emergency("log4go by %s", name)
   304  	loggerDefaultTest.Alert("%#v", loggerDefaultTest)
   305  }