base.go
func (b *Base) ShutdownLoggers() error {
	// Before shutting down we should flush all the messsages
	b.Flush()

	for _, logger := range b.loggers {
		err := logger.ShutdownLogger()
		if err != nil {
			return err
		}
	}

	if b.queue != nil {
		b.queue.stopWorker()
		b.queue = nil
	}

	if b.errorChan != nil {
		close(b.errorChan)
		b.errorChan = nil
	}

	b.isInitialized = false
	return nil
}
func (b *Base) ShutdownLoggers() error {
	// Before shutting down we should flush all the messsages
	b.Flush()

	for _, logger := range b.loggers {
		err := logger.ShutdownLogger()
		if err != nil {
			return err
		}
	}

	if b.queue != nil {
		b.queue.stopWorker()
		b.queue = nil
	}

	if b.errorChan != nil {
		close(b.errorChan)
		b.errorChan = nil
	}

	b.isInitialized = false
	return nil
}
/*
ShutdownLoggers will run ShutdownLogger on each Logger in Base.  If an error occurs
while shutting down a Logger, the error will be returned and all the loggers that
were already shut down will remain shut down.
*/