func (p *Plugin) Panic(args ...interface{}) {
	p.Logger().Panic(args...)
}
Panic uses fmt.Sprint to construct and log a message, then panics.
package node
import (
	"strings"
	"sync"
	"github.com/iotaledger/hive.go/events"
	"github.com/iotaledger/hive.go/logger"
)
const (
	Disabled = iota
	Enabled
)
type Callback = func(plugin *Plugin)
type Plugin struct {
	Node    *Node
	Name    string
	Status  int
	Events  pluginEvents
	log     *logger.Logger
	logOnce sync.Once
	deps    interface{}
	wg      *sync.WaitGroup
}
func NewPlugin(name string, deps interface{}, status int, callbacks ...Callback) *Plugin {
	plugin := &Plugin{
		Name:   name,
		Status: status,
		deps:   deps,
		Events: pluginEvents{
			Init:      events.NewEvent(pluginAndDepCaller),
			Configure: events.NewEvent(pluginCaller),
			Run:       events.NewEvent(pluginCaller),
		},
	}
	AddPlugin(plugin)
	switch len(callbacks) {
	case 0:
	case 1:
		plugin.Events.Run.Attach(events.NewClosure(callbacks[0]))
	case 2:
		plugin.Events.Configure.Attach(events.NewClosure(callbacks[0]))
		plugin.Events.Run.Attach(events.NewClosure(callbacks[1]))
	default:
		panic("too many callbacks in NewPlugin(...)")
	}
	return plugin
}
func GetPluginIdentifier(name string) string {
	return strings.ToLower(strings.Replace(name, " ", "", -1))
}
func (p *Plugin) LogDebug(args ...interface{}) {
	p.Logger().Debug(args...)
}
func (p *Plugin) LogDebugf(format string, args ...interface{}) {
	p.Logger().Debugf(format, args...)
}
func (p *Plugin) LogError(args ...interface{}) {
	p.Logger().Error(args...)
}
func (p *Plugin) LogErrorf(format string, args ...interface{}) {
	p.Logger().Errorf(format, args...)
}
func (p *Plugin) LogFatal(args ...interface{}) {
	p.Logger().Fatal(args...)
}
func (p *Plugin) LogFatalf(format string, args ...interface{}) {
	p.Logger().Fatalf(format, args...)
}
func (p *Plugin) LogInfo(args ...interface{}) {
	p.Logger().Info(args...)
}
func (p *Plugin) LogInfof(format string, args ...interface{}) {
	p.Logger().Infof(format, args...)
}
func (p *Plugin) LogWarn(args ...interface{}) {
	p.Logger().Warn(args...)
}
func (p *Plugin) LogWarnf(format string, args ...interface{}) {
	p.Logger().Warnf(format, args...)
}