private void flush(List<JobLogPo> batch) {
   boolean flushSuccess = false;
   try {
     jobLogger.log(batch);
     flushSuccess = true;
   } finally {
     if (!flushSuccess) {
       memoryQueue.addAll(batch);
     }
     batch.clear();
   }
 }
 @Override
 public void log(JobLogPo jobLogPo) {
   if (jobLogPo == null) {
     return;
   }
   if (lazyLog) {
     checkOverflowSize();
     memoryQueue.offer(jobLogPo);
     checkCapacity();
   } else {
     jobLogger.log(jobLogPo);
   }
 }
 @Override
 public void log(List<JobLogPo> jobLogPos) {
   if (CollectionUtils.isEmpty(jobLogPos)) {
     return;
   }
   if (lazyLog) {
     checkOverflowSize();
     for (JobLogPo jobLogPo : jobLogPos) {
       memoryQueue.offer(jobLogPo);
     }
     // checkCapacity
     checkCapacity();
   } else {
     jobLogger.log(jobLogPos);
   }
 }