I need to monitor log file which is produced by jPos. The log output looks like:
<log realm="channel/10.10.23.81:18090" at="2015-02-08 00:00:19.540 CET" lifespan="9019ms">
<receive>
<isomsg direction="incoming">
<!-- org.jpos.iso.packager.GenericPackager[cfg/iso93ascii.xml] -->
<field id="0" value="1804"/>
<field id="7" value="20150208000019"/>
<field id="11" value="399335"/>
<field id="24" value="831"/>
</isomsg>
</receive>
</log>
<log realm="channel/10.10.23.81:18090" at="2015-02-08 00:00:19.540 CET">
<send>
<isomsg direction="outgoing">
<!-- org.jpos.iso.packager.GenericPackager[cfg/iso93ascii.xml] -->
<field id="0" value="1814"/>
<field id="7" value="20150208000019"/>
<field id="11" value="399335"/>
<field id="24" value="831"/>
<field id="39" value="800"/>
</isomsg>
</send>
</log>
One message is always between log tags and could be long many lines. Also could contains errors like:
<log realm="channel/10.10.23.81:18090" at="2015-02-06 00:01:58.728 CET" lifespan="26768ms">
<receive>
<iso-exception>
org.jpos.iso.IFA_LLNUM: Problem unpacking field 56 (org.jpos.iso.ISOException: Field length 37 too long. Max: 35) unpacking field=56, consumed=282
org.jpos.iso.ISOException: org.jpos.iso.IFA_LLNUM: Problem unpacking field 56 (org.jpos.iso.ISOException: Field length 37 too long. Max: 35) unpacking field=56, consumed=282
at org.jpos.iso.ISOBasePackager.unpack(ISOBasePackager.java:265)
at org.jpos.iso.ISOMsg.unpack(ISOMsg.java:420)
at org.jpos.iso.BaseChannel.unpack(BaseChannel.java:924)
at org.jpos.iso.BaseChannel.receive(BaseChannel.java:692)
at org.jpos.q2.iso.ChannelAdaptor$Receiver.run(ChannelAdaptor.java:319)
at java.lang.Thread.run(Thread.java:745)
</iso-exception>
--- data ---
0000 31 34 32 31 46 36 37 34 30 35 43 35 30 45 45 30 1421F67405C50EE0
0010 41 31 30 30 30 30 30 30 30 30 30 32 30 34 30 30 A100000000010330
0020 30 30 30 30 31 36 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 000045**********
0030 2A 2A 33 34 34 32 30 30 30 30 30 30 30 30 30 30 **35670000000000
0040 30 30 30 31 38 30 30 30 30 30 30 30 30 30 30 31 0001800000000001
</receive>
</log>
I would like to grep whole one message by specific time stamp ("2015-02-06 16:") and string (like ORA, iso-exception, ...) and get nice output line-by-line (as the origin look). The jPos log file is huge, I try set monitoring for any malfunction and the result want send to email, so should be readable.
Any idea guys?
No comments:
Post a Comment