Я пытаюсь импортировать содержимое файла журнала в базу данных с помощью Spring Batch.
В настоящее время я использую FlatFileItemReader, но, к сожалению, есть много записей журнала, которые не перехватывают. Две основные проблемы:
Строки, содержащие многострочные строки JSON:
2012-03-22 11:47:35,307 DEBUG main someMethod(SomeClass.java:56): Do Something(18,true,null,null,null): my.json = '{
"Foo":"FooValue",
"Bar":"BarValue",
... etc
}'
Строки, содержащие следы стека
2012-03-22 11:47:50,596 ERROR main com.meetup.memcached.SockIOPool.createSocket(SockIOPool.java:859): No route to host
java.net.NoRouteToHostException: No route to host
at sun.nio.ch.Net.connect0(Native Method)
at sun.nio.ch.Net.connect(Net.java:364)
at sun.nio.ch.Net.connect(Net.java:356)
at sun.nio.ch.SocketChannelImpl.connect(SocketChannelImpl.java:623)
at sun.nio.ch.SocketAdaptor.connect(SocketAdaptor.java:92)
at com.meetup.memcached.SockIOPool$SockIO.getSocket(SockIOPool.java:1703)
at com.meetup.memcached.SockIOPool$SockIO.<init>(SockIOPool.java:1674)
at com.meetup.memcached.SockIOPool.createSocket(SockIOPool.java:850)
at com.meetup.memcached.SockIOPool.populateBuckets(SockIOPool.java:737)
at com.meetup.memcached.SockIOPool.initialize(SockIOPool.java:695)
По сути, мне нужно, чтобы FlatFileItemReader продолжал читать, пока не достигнет следующей отметки времени, при этом агрегируя все строки до этого. Делалось ли что-нибудь подобное раньше (в Spring Batch)