【发布时间】:2020-01-21 04:25:29
【问题描述】:
package com.example.dev1.controller;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
/*import java.sql.ResultSet;*/
import java.sql.SQLException;
import java.util.Arrays;
import java.util.List;
import javax.swing.JApplet;
public class ReadLg extends JApplet {
private static final long serialVersionUID = 1L;
public static void main(String[] args) throws ClassNotFoundException, SQLException {
String[] lev_param = { "DEBUG", "WARN", "INFO", "ERROR" };
List<String> listparam = Arrays.asList(lev_param);
String temp = null;
PreparedStatement ps = null;
Connection con = null;
/* ResultSet rs = null; */
try {
BufferedReader br = new BufferedReader(new FileReader("All.log"));
String username = ****;
String pwd = ****;
String connurl = "jdbc:mysql://10.247.36.174:3306/d_accesslog?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC";
con = DriverManager.getConnection(connurl, username, pwd);
String line = null;
while ((line = br.readLine()) != null) {
temp+=line;
if (line.equals(listparam)) {
String sql = "INSERT INTO t_weblogic_test (RawData) values ('\''+line+'\'')";
temp=null;
}
ps = con.prepareStatement(sql);
ps.executeUpdate();
}
br.close();
con.close();
ps.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
所以,我对如何将数组作为参数条件插入有点困惑。
我想添加数组作为我的参数。在这个程序中,我读取日志数据并将日志级别设置为我的参数条件,因此当它读取下一个日志级别时,它将停止并将数据插入数据库。因此,我对如何做到这一点的确切方法有些困惑。
此日志文件如下所示
“调试 [CorporateUserSMImpl] 30-05-2019 00:01:04:id = 2c9dc30c673209d201675e3e5c961456”
“WARN [LoginAction] 30-05-2019 00:01:04:go MAIN 页面的登录过程 batchID = 2c9dc30c6ac6b815016b0452cd3d41ef 时间 ENDCALLBO= 2019-05-30 00:01:04.198”
所以当它读取下一个日志级别时,它将停止并保存上一行
新!!!
如果日志文件如下所示怎么办
“调试 [AccountDAOImpl] 30-05-2019 00:01:45: .....
开始调用getByAccountGroupIdAndIsInquiryPicklistWithAccountTypeNew 12方法
“调试 [AccountDAOImpl] 30-05-2019 00:01:45: currentPage =1
【问题讨论】: