code: func (plugin *ExamplePlugin) Init() (err error) {
  	exampleString := "example"
  	exampleNum := 15
  
  	// Set log level which logs only entries with current severity or above
  	plugin.Log.SetLevel(logging.WarnLevel)  // warn, error, panic, fatal
  	plugin.Log.SetLevel(logging.InfoLevel)  // info, warn, error, panic, fatal - default log level
  	plugin.Log.SetLevel(logging.DebugLevel) // everything
  
  	// Basic logger options
  	plugin.Log.Print("----------- Log examples -----------")
  	plugin.Log.Printf("Print with format specifier. String: %s, Digit: %d, Value: %v", exampleString, exampleNum, plugin)
  
  	// Format also available for all 6 levels of log levels
  	plugin.Log.Debug("Debug log example: Debugging information")
  	plugin.Log.Info("Info log example: Something informative")
  	plugin.Log.Warn("Warn log example: Something unexpected, warning")
  	plugin.Log.Error("Error log example: Failure without exit")
  	plugin.showPanicLog()
  	//log.Fatal("Bye") calls os.Exit(1) after logging
  
  	// Log with field - automatically adds timestamp
  	plugin.Log.WithField("exampleString", exampleString).Info("Info log with field example")
  	// For multiple fields
  	plugin.Log.WithFields(map[string]interface{}{"exampleString": exampleString, "exampleNum": exampleNum}).Info("Info log with field example string and num")
  
  	// Custom (child) logger with name
  	childLogger := plugin.Log.NewLogger("childLogger")
  	childLogger.Infof("Log using named logger with name: %v", childLogger.GetName())
  	childLogger.Debug("Debug log using childLogger!")
  
  	childLogger2 := plugin.Log.NewLogger("childLogger2")
  	childLogger2.Debug("Debug log using childLogger2!")
  
  	return nil
  }
docs: // Init demonstrates the usage of PluginLogger API.