logging.go
func WaitForAllUnprocessedRecords() {
	lock.Lock()
	var wg sync.WaitGroup
	for _, logger := range loggers {
		wg.Add(1)
		go func(logger *Logger) {
			logger.WaitForUnprocessedRecords()
			wg.Done()
		}(logger)
	}
	wg.Wait()
	lock.Unlock()
}
func WaitForAllUnprocessedRecords() {
	lock.Lock()
	var wg sync.WaitGroup
	for _, logger := range loggers {
		wg.Add(1)
		go func(logger *Logger) {
			logger.WaitForUnprocessedRecords()
			wg.Done()
		}(logger)
	}
	wg.Wait()
	lock.Unlock()
}
func WaitForAllUnprocessedRecords ( ) { lock . Lock ( ) var wg sync . WaitGroup for _ , logger := range loggers { wg . Add ( 1 ) go func ( logger * Logger ) { logger . WaitForUnprocessedRecords ( ) wg . Done ( ) } ( logger ) } wg . Wait ( ) lock . Unlock ( ) }
// WaitForAllUnprocessedRecords blocks execution until all unprocessed
// log records are processed.
// Since this library implements async logging, it is possible to have
// unprocessed logs at the moment when application is terminating.
// In that case, log messages can be lost. This mehtods blocks execution
// until all log records are processed, to ensure that all log messages
// are handled.
WaitForAllUnprocessedRecords blocks execution until all unprocessed log records are processed . Since this library implements async logging it is possible to have unprocessed logs at the moment when application is terminating . In that case log messages can be lost . This mehtods blocks execution until all log records are processed to ensure that all log messages are handled .