Как включить более подробную информацию в журнале для библиотеки 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 также.

Другие вопросы по тегам