func (cons *LogConsumer) GetShutdownTimeout() time.Duration {
	return time.Millisecond
}
GetShutdownTimeout always returns 1 millisecond
package core
import (
	"fmt"
	"sync"
	"time"
	"gollum/logger"
	"github.com/rcrowley/go-metrics"
	"github.com/sirupsen/logrus"
)
type LogConsumer struct {
	Consumer
	control         chan PluginControl
	logRouter       Router
	metric          string
	stopped         bool
	queue           MessageQueue
	metricErrors    metrics.Counter
	metricWarning   metrics.Counter
	metricInfo      metrics.Counter
	metricDebug     metrics.Counter
	metricsRegistry metrics.Registry
}
func (cons *LogConsumer) Configure(conf PluginConfigReader) {
	cons.control = make(chan PluginControl, 1)
	cons.logRouter = StreamRegistry.GetRouter(LogInternalStreamID)
	cons.metric = conf.GetString("MetricKey", "")
	cons.queue = NewMessageQueue(1024)
	if cons.metric != "" {
		cons.metricsRegistry = NewMetricsRegistry(cons.metric)
		cons.metricErrors = metrics.NewCounter()
		cons.metricWarning = metrics.NewCounter()
		cons.metricInfo = metrics.NewCounter()
		cons.metricDebug = metrics.NewCounter()
		cons.metricsRegistry.Register("errors", cons.metricErrors)
		cons.metricsRegistry.Register("warnings", cons.metricWarning)
		cons.metricsRegistry.Register("info", cons.metricInfo)
		cons.metricsRegistry.Register("debug", cons.metricDebug)
	}
}
func (cons *LogConsumer) GetState() PluginState {
	if cons.stopped {
		return PluginStateDead
	}
	return PluginStateActive
}
func (cons *LogConsumer) Streams() []MessageStreamID {
	return []MessageStreamID{LogInternalStreamID}
}
func (cons *LogConsumer) IsBlocked() bool {
	return false
}
func (cons *LogConsumer) GetID() string {
	return "core.LogConsumer"
}