Как включить более подробную информацию в журнале для библиотеки Spring Batch - PullRequest
0 голосов
/ 10 октября 2019

Добрый день,

У меня есть пакет Spring, который использует org.springframework.batch.item.support.CompositeItemWriter для записи данных в БД.

Ниже приведен код писателя в моем 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.

Однако есть 1 запись, которая не была обновлена ​​в производственной базе данных, даже счетчик успешно,Я беру входной файл и запускаю в 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 Ответ

1 голос
/ 10 октября 2019

Я хотел бы спросить, как включить больше журнала для писателя

JdbcBatchItemWriter использует API-интерфейсы spring-jdbc позади сцены, поэтому вы можете установить журналуровень debug для пакета org.springframework.jdbc.

Я бы также включил журналы отладки для org.springframework.batch.

...