func (t *Target) Errorf(format string, v ...interface{}) {
	t.mut.RLock()
	defer t.mut.RUnlock()
	if t.logger != nil {
		t.logger.Errorf(format, v...)
		for _, item := range v {
			if _, hasStack := item.(withStack); hasStack {
				t.logger.Errorf("stack for error: %+v", item)
			}
		}
	}
}
func (t *Target) Errorf(format string, v ...interface{}) {
	t.mut.RLock()
	defer t.mut.RUnlock()
	if t.logger != nil {
		t.logger.Errorf(format, v...)
		for _, item := range v {
			if _, hasStack := item.(withStack); hasStack {
				t.logger.Errorf("stack for error: %+v", item)
			}
		}
	}
}
func ( t * Target ) Errorf ( format string , v ... interface { } ) { t . mut . RLock ( ) defer t . mut . RUnlock ( ) if t . logger != nil { t . logger . Errorf ( format , v ... ) for _ , item := range v { if _ , hasStack := item . ( withStack ) ; hasStack { t . logger . Errorf ( " " , item ) } } } }
// Errorf writes the formatted string to the Target
// logger.
Errorf writes the formatted string to the Target logger .