Как включить более подробную информацию в журнале для библиотеки Spring Batch
Добрый день,
У меня есть пакет Spring, который использует org.springframework.batch.item.support.CompositeItemWriter
для записи данных в db.
Ниже приведен код писателя в моем xml:
<bean id="iReturnCompositeTableWriter" class="org.springframework.batch.item.support.CompositeItemWriter">
<property name="delegates">
<list>
<ref bean="iReturnTableWriter5" />
</list>
</property>
</bean>
<bean id="iReturnTableWriter5" class="com.batch.job.writer.IReturnTableWriter">
<property name="assertUpdates" value="false" />
<property name="itemSqlParameterSourceProvider">
<!-- Our Mapper for table writer -->
<bean class="com.batch.job.writer.mapper.IReturnWriterTableMapper" />
</property>
<!-- Put in your INSERT, UPDATE, DELETE SQL here -->
<property name="sql"
value="UPDATE ADM.TRX
SET STATUS = 'FAIL'
WHERE INTERNALREFERENCENO = :theirTraceNum" />
<property name="dataSource" ref="dataSource" />
</bean>
А ниже приведен код IReturnTableWriter
учебный класс:
public class IReturnTableWriter extends JdbcBatchItemWriter< TrxVO >
implements StepExecutionListener, ItemWriteListener< TrxVO > {
public void afterWrite(List<? extends BulkPaymentVO> arg0) {
}
public void beforeWrite(List<? extends BulkPaymentVO> arg0) {
}
public void onWriteError(Exception arg0, List<? extends BulkPaymentVO> arg1) {
}
public ExitStatus afterStep(StepExecution arg0) {
return null;
}
public void beforeStep(StepExecution arg0) {
}
}
А ниже приведен код IReturnWriterTableMapper
учебный класс:
public class IReturnWriterTableMapper implements
ItemSqlParameterSourceProvider< IbgReturnVO > {
public SqlParameterSource createSqlParameterSource(TrxVO trxVO) {
return new BeanPropertySqlParameterSource(trxVO);
}
}
Журнал пакета показывает, что этот пакет запущен успешно без каких-либо ошибок. Успешный подсчет совпадает с моим количеством строк входного файла. В журнале я также увидел, что он читается читателем и сохраняется вtrxVO
объект.
Однако есть одна запись, которая не обновлялась в базе данных в производственной среде, даже количество успешных попыток верное. Я беру входной файл и запускаю SIT, UAT, и все работает нормально. В журнале я не вижу журнала о запросе обновления.
На самом деле я уже включил уровень журнала для отслеживания org.springframework.batch
а также org.springframework.jdbc
в logback.xml:
<logger name="org.springframework.batch">
<level value="TRACE" />
</logger>
<logger name="org.springframework.jdbc">
<level value="TRACE" />
</logger>
И в журнале я видел, как это уже вступило в силу:
15:44:19,173 |-INFO in ch.qos.logback.classic.joran.action.LevelAction - org.springframework.batch level set to TRACE
15:44:19,173 |-INFO in ch.qos.logback.classic.joran.action.LevelAction - org.springframework.jdbc level set to TRACE
Я хотел бы спросить, как включить больше журнала для писателя, чтобы я мог устранять неполадки в том, что происходит.
Или, если у вас есть более полезная идея или предложение, сообщите, пожалуйста.
1 ответ
Я хотел бы спросить, как включить больше журнала для писателя
В JdbcBatchItemWriter
использует API-интерфейсы spring-jdbc за сценой, поэтому вы можете установить уровень журнала на debug
за org.springframework.jdbc
пакет.
Я бы также включил журналы отладки для org.springframework.batch
также.