【问题标题】:How do I extract sql query line from log file using Java?如何使用 Java 从日志文件中提取 sql 查询行?
【发布时间】:2019-02-10 17:25:21
【问题描述】:

我已将日志文件数据存储在字符串中。

日志文件数据:

testOut_Log: START RequestId: 13b73ed9-b101-11e8-8619-91946b18fd8a Version: $LATEST
2018-09-05 11:44:41 <13b73ed9-b101-11e8-8619-91946b18fd8a> INFO  UpcDaoImpl:QUERY : SELECT apn, epc, rpc_fmt_cd FROM tbl_data WHERE apn= '43781661' OR apn= '63535011' OR apn= '19870' OR apn = '1023313'
2018-09-05 11:44:42 <13b73ed9-b101-11e8-8619-91946b18fd8a> INFO  addpcDaoImpl:RPT 

只需要查询:

SELECT apn, epc, rpc_fmt_cd FROM tbl_data WHERE apn= '43781661' OR apn= '63535011' OR apn= '19870' OR apn = '1023313'

我尝试过的代码:

String myQuery = testOutput_Log.substring(testOutput_Log.indexOf("QUERY : ")); System.out.println(myQuery);

输出: 我的查询:

查询:从 tbl_data 选择 apn、epc、rpc_fmt_cd,其中 apn= '43781661' 或 apn= '63535011' 或 apn= '19870' 或 apn = '1023313' 2018-09-05 14:43:51 信息 aaaapcDaoImpl:RPT

【问题讨论】:

  • 您能提供您尝试过的任何代码吗?
  • 看来你可以在每一行搜索QUERY。然后你可以使用类似string.subString(string.indexOf("QUERY : "):

标签: java mysql logging


【解决方案1】:

下面的代码对我有用:

String myQuery = testOutput_Log.substring(testOutput_Log.indexOf("QUERY : ")); System.out.println("myQuery: \n"+ myQuery); String myQuery2 = myQuery.substring(myQuery.indexOf("SELECT"), myQuery.indexOf("\n")); System.out.println("myQuery2: \n"+ myQuery2);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-28
    • 1970-01-01
    相关资源
    最近更新 更多