package com.alibaba.newcpw.FileOperate;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
public class FileWrite {
// 定义path全局路径 原始日志存放路径pathOrigin 错误日志存放路径pathError
public static String pathOrigin = "/Users/lishan/Desktop/code/newcpw/logHistory/origin_log.txt";
public static String pathError = "/Users/lishan/Desktop/code/newcpw/logHistory/error_log.txt";
public static String pathAll = "/Users/lishan/Desktop/code/newcpw/logHistory";
public static String rex = "&&&&";
public static void main(String[] args) {
String content = "a log will be write in file";
System.out.println(content + "" + "");
originLog(content + "" + "");
errorLog(content + "" + "");
}
public static void originLog(String content) {
try {
// File.separator代表系统目录中的间隔符,说白了就是斜线 '\',不过有时候需要双线,有时候是单线,用这个静态变量就解决兼容问题了。
File file = new File(pathAll + File.separator + "origin_log.txt");
if (!file.exists()) {
file.createNewFile();
}
FileWriter fileWriter = new FileWriter(file.getAbsoluteFile(), true);
BufferedWriter bw = new BufferedWriter(fileWriter);
bw.write(content + "\r\n");
bw.close();
System.out.println("finish");
} catch (IOException e) {
e.printStackTrace();
}
}
public static void errorLog(String content) {
try {
// File.separator代表系统目录中的间隔符,说白了就是斜线 '\',不过有时候需要双线,有时候是单线,用这个静态变量就解决兼容问题了。
File file = new File(pathAll + File.separator + "error_log.txt");
if (!file.exists()) {
file.createNewFile();
}
FileWriter fileWriter = new FileWriter(file.getAbsoluteFile(), true);
BufferedWriter bw = new BufferedWriter(fileWriter);
bw.write("\r\n" + content);
bw.close();
System.out.println("finish");
} catch (IOException e) {
e.printStackTrace();
}
}
public static String getErrorLog(String currentTimeMillis, String clientTimeStamp, int count, String printMsg) {
String errorLog = "";
errorLog = currentTimeMillis + FileWrite.rex + clientTimeStamp + FileWrite.rex + count + FileWrite.rex + printMsg;
return errorLog;
}
// 错误日志写入cpw_log_error数据表,暂无clientTimeStamp的日志
public static String getErrorLogNoclientTimeStamp(String currentTimeMillis, int count, String printMsg, int errorLevel) {
String errorLogNoclientTimeStamp = "";
// errorLogNoclientTimeStamp = currentTimeMillis + FileWrite.rex + clientTimeStamp + FileWrite.rex + count + FileWrite.rex +printMsg;
errorLogNoclientTimeStamp = currentTimeMillis + FileWrite.rex + "暂无clientTimeStamp" + FileWrite.rex + count + FileWrite.rex + printMsg + FileWrite.rex + errorLevel;
return errorLogNoclientTimeStamp;
}
// 错误日志写入cpw_log_error数据表,有clientTimeStamp的日志
public static String getErrorLogHasclientTimeStamp(String currentTimeMillis, String clientTimeStamp, int count, String printMsg, int errorLevel) {
String getErrorLogHasclientTimeStamp = "";
// errorLogNoclientTimeStamp = currentTimeMillis + FileWrite.rex + clientTimeStamp + FileWrite.rex + count + FileWrite.rex +printMsg;
getErrorLogHasclientTimeStamp = currentTimeMillis + FileWrite.rex + clientTimeStamp + FileWrite.rex + count + FileWrite.rex + printMsg + FileWrite.rex + errorLevel;
return getErrorLogHasclientTimeStamp;
}
// 删除原始origin_log.txt和error_log.txt,防止日志重复写入
public static void deleteAllLogFile() {
try {
// File.separator代表系统目录中的间隔符,说白了就是斜线 '\',不过有时候需要双线,有时候是单线,用这个静态变量就解决兼容问题了。
// 删除原始日志
File fileOrigin = new File(pathAll + File.separator + "origin_log.txt");
if (fileOrigin.exists()) {
fileOrigin.delete();
}
System.out.println("原始日志已删除。delete origin_log.txt file success");
// 删除错误日志
File fileError = new File(pathAll + File.separator + "error_log.txt");
if (fileError.exists()) {
fileError.delete();
}
System.out.println("错误参数断言日志已删除。delete error_log.txt file success");
} catch (Exception e) {
e.printStackTrace();
}
}
// 删除原始origin_log.txt,防止接口重复请求导致日志重复写入
public static void deleteOriginLogFirstRunFile() {
try {
// File.separator代表系统目录中的间隔符,说白了就是斜线 '\',不过有时候需要双线,有时候是单线,用这个静态变量就解决兼容问题了。
// 删除原始日志
File fileOrigin = new File(pathAll + File.separator + "origin_log.txt");
if (fileOrigin.exists()) {
fileOrigin.delete();
}
System.out.println("原始日志已删除。delete origin_log.txt file success");
} catch (Exception e) {
e.printStackTrace();
}
}
// 删除原始error_log.txt,防止接口重复请求导致日志重复写入
public static void deleteErrorLogFirstRunFile() {
try {
// File.separator代表系统目录中的间隔符,说白了就是斜线 '\',不过有时候需要双线,有时候是单线,用这个静态变量就解决兼容问题了。
// 删除错误日志
File fileError = new File(pathAll + File.separator + "error_log.txt");
if (fileError.exists()) {
fileError.delete();
}
System.out.println("错误参数断言日志已删除。delete error_log.txt file success");
} catch (Exception e) {
e.printStackTrace();
}
}
// 删除副本origin_log_copy.txt和error_log_copy.txt
public static void deleteAllLogCopyFile() {
try {
// 删除原始日志副本
// File.separator代表系统目录中的间隔符,说白了就是斜线 '\',不过有时候需要双线,有时候是单线,用这个静态变量就解决兼容问题了。
File fileOrigin = new File(pathAll + File.separator + "origin_log_copy.txt");
if (fileOrigin.exists()) {
fileOrigin.delete();
}
System.out.println("原始日志副本已删除。delete origin_log_copy.txt file ");
// 删除错误日志副本
File fileError = new File(pathAll + File.separator + "error_log_copy.txt");
if (fileError.exists()) {
fileError.delete();
}
System.out.println("错误参数断言日志副本已删除。delete error_log_copy file ");
} catch (Exception e) {
e.printStackTrace();
}
}
}
待续。。。