日志逻辑优化

v1.3
xueli.xue 8 years ago
parent 63edb6d848
commit 0c4491a1b8

@ -4,9 +4,10 @@ import java.io.BufferedReader;
import java.io.File; import java.io.File;
import java.io.FileInputStream; import java.io.FileInputStream;
import java.io.FileOutputStream; import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.IOException; import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader; import java.io.InputStreamReader;
import java.io.LineNumberReader;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.Date; import java.util.Date;
@ -133,36 +134,72 @@ public class XxlJobFileAppender extends AppenderSkeleton {
String logFileName = trigger_log_id.concat(".log"); String logFileName = trigger_log_id.concat(".log");
File logFile = new File(filePathDateDir, logFileName); File logFile = new File(filePathDateDir, logFileName);
if (!logFile.exists()) { if (!logFile.exists()) {
try {
logFile.createNewFile();
} catch (IOException e) {
e.printStackTrace();
return null; return null;
} }
String logData = readLines(logFile);
return logData;
} }
try { /**
InputStream ins = null; * read log data
* @param logFile
* @return
*/
public static String readLines(File logFile){
BufferedReader reader = null; BufferedReader reader = null;
try { try {
ins = new FileInputStream(logFile); reader = new BufferedReader(new InputStreamReader(new FileInputStream(logFile), "utf-8"));
reader = new BufferedReader(new InputStreamReader(ins, "utf-8"));
if (reader != null) { if (reader != null) {
String content = null;
StringBuilder sb = new StringBuilder(); StringBuilder sb = new StringBuilder();
while ((content = reader.readLine()) != null) { String line = null;
sb.append(content).append("\n"); while ((line = reader.readLine()) != null) {
sb.append(line).append("\n");
} }
return sb.toString(); return sb.toString();
} }
} catch (IOException e) {
e.printStackTrace();
} finally { } finally {
if (ins != null) { if (reader != null) {
try { try {
ins.close(); reader.close();
} catch (IOException e) { } catch (IOException e) {
e.printStackTrace(); e.printStackTrace();
} }
} }
}
return null;
}
/**
* read data from line num
* @param sourceFile
* @param fromLineNum
* @return
* @throws Exception
*/
public static String readLinesFrom(File logFile, int fromLineNum) {
LineNumberReader reader = null;
try {
reader = new LineNumberReader(new FileReader(logFile));
// sBuffer
StringBuffer sBuffer = new StringBuffer();
String line = null;
int maxLineNum = 0;
while ((line = reader.readLine())!=null) {
maxLineNum++;
if (reader.getLineNumber() >= fromLineNum) {
sBuffer.append(line).append("\n");
}
}
System.out.println("maxLineNum : " + maxLineNum);
return sBuffer.toString();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (reader != null) { if (reader != null) {
try { try {
reader.close(); reader.close();
@ -171,10 +208,15 @@ public class XxlJobFileAppender extends AppenderSkeleton {
} }
} }
} }
} catch (Exception e) {
e.printStackTrace();
}
return null; return null;
/*
// it will return the number of characters actually skipped
reader.skip(Long.MAX_VALUE);
int maxLineNum = reader.getLineNumber();
maxLineNum++; // 最大行号
*/
} }
} }

Loading…
Cancel
Save