func LoggingErrorListener(err error) {
	logger.Errorf("Error: %s\n", err.Error())
}
LoggingErrorListener is set by default and will report internal failures when
returning an error is not possible
package archive
import (
	"fmt"
	"github.com/lirm/aeron-go/aeron"
	"github.com/lirm/aeron-go/aeron/atomic"
	"github.com/lirm/aeron-go/archive/codecs"
	logging "github.com/op/go-logging"
	"time"
)
type Archive struct {
	aeron        *aeron.Aeron             
	aeronContext *aeron.Context           
	Options      *Options                 
	SessionId    int64                    
	Proxy        *Proxy                   
	Control      *Control                 
	Events       *RecordingEventsAdapter  
}
const (
	RecordingPositionNull = int64(-1)         
	RecordingLengthNull   = int64(-1)         
	RecordingLengthMax    = int64(2<<31 - 1)  
)
const (
	RecordingIdNullValue = int32(-1)
)
var Listeners *ArchiveListeners
type ArchiveListeners struct {
	ErrorListener func(error)
	RecordingEventStartedListener  func(*codecs.RecordingStarted)
	RecordingEventProgressListener func(*codecs.RecordingProgress)
	RecordingEventStoppedListener  func(*codecs.RecordingStopped)
	RecordingSignalListener func(*codecs.RecordingSignalEvent)
	NewSubscriptionListener  func(string, int32, int64)
	NewPublicationListener   func(string, int32, int32, int64)
	AvailableImageListener   func(*aeron.Image)
	UnavailableImageListener func(*aeron.Image)
}