code: func NewLogger(name string, skip int) *Log {
  	logging := &Log{stats: new(Stats)}
  	logging.setVState(0, nil, nil, false)
  	logging.skip = 2 + skip
  	logging.maxStackBufSize = 4096 * 1024
  	logging.name = name
  
  	// Default stderrThreshold is ERROR.
  	logging.stderrThreshold = ErrorLog
  	logging.setVState(0, nil, nil, false)
  
  	logging.severityStats[InfoLog] = &logging.stats.Info
  	logging.severityStats[WarningLog] = &logging.stats.Warning
  	logging.severityStats[ErrorLog] = &logging.stats.Error
  
  	logging.logDirs = append(logging.logDirs, os.TempDir())
  	go logging.flushDaemon()
  	return logging
  }
docs: // NewLogger creates a new logger.
  // name is a non-empty string that appears in the names of log files
  // to distinguish between separate instances of the logger writing to the
  // same directory.
  // skip is the number of stack frames to skip in order to reach the
  // call point to be logged. 0 will log the caller of the logging methods,
  // 1 their caller etc.