package com.myh.kb13.t806.services6;
import com.alibaba.fastjson.JSON;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.RandomAccessFile;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Random;
/**
* @Description:
* @author:myh
* @date: 2021/8/6 15:56
*/
public class WriteLogFile {
final Random rand=new Random();
final Calendar cal=Calendar.getInstance();
final SimpleDateFormat sdf=new SimpleDateFormat("yyyyMMdd");//日期格式类
final SimpleDateFormat log_format=new SimpleDateFormat("yyyy-MM-dd#HH:mm:ss");
//四个动作
final String []acts={"BROWSE","CLICK","BUY","COLLECT"};
final String []pages={"index.html","goods.html","buy.html","order.html"};
final String []browseType={"CHROME","FIREFOX"};
final String []browseVersion={"70","80","90"};
final String []cpuType={"inter","amd"};
final String []cpuSeed={"2.7GHZ","3.2GHZ"};
final String []memory={"16G","32G","64G","128G"};
private int day;
public WriteLogFile(int day){
cal.set(2020,0,1,0,0,0);
cal.add(Calendar.DATE, day);
}
/*
写一个文件
*/
public void write (String path) {
//根据用户的路径生成文件
// File file=new File(path+"/"+createFile(num));
// if(!file.exists()){
// file.createNewFile();
// }
try {
RandomAccessFile raf=new RandomAccessFile(path+"/"+createFile(),"rw");
//按一天 30万次填充数据到文件
int hour=0;
for (int i = 1; i <= 300; i++) {
if (i%12500==0){
hour++;
}
//设置时分秒
cal.set(Calendar.HOUR_OF_DAY,hour);//日历的HOUR会根据你的程序运行时间是上午还是下午加0:上午12:下午
cal.set(Calendar.MINUTE, rand.nextInt(60));
cal.set(Calendar.SECOND, rand.nextInt(60));
UserAction us=new UserAction(
rand.nextInt(1000000)+"",
rand.nextInt(1000000)+"",
log_format.format(cal.getTime()),
acts[rand.nextInt(4)],
pages[rand.nextInt(4)],
new Browse(browseType[rand.nextInt(2)],browseVersion[rand.nextInt(3)]),
new Machine(
cpuType[rand.nextInt(2)]
,cpuSeed[rand.nextInt(2)],
memory[rand.nextInt(4)])
);
String str=JSON.toJSON(us).toString()+"\n";
raf.write(str.getBytes());
}
raf.close();
} catch (IOException e) {
e.printStackTrace();
}
}
/*
log20200506.log
根据用户传入的数字确认生成1个文件
*/
private String createFile(){
//根据数字生成文件名
// cal.set(2020,0,1);//老外的规定 0月代表1月 1月代表2月
// SimpleDateFormat sdf=new SimpleDateFormat("yyyyMMdd");//日期格式类
// cal.add(Calendar.DATE,num);//在原来的日期上加几天
// cal.add(Calendar.YEAR,num);//在原来的日期上加几年
String fileName="log_"+sdf.format(cal.getTime())+".log";
return fileName;
}
public static void main(String[] args) {
// UserAction us = new UserAction("1", "12", "1995-06-21T12:43:43", "CLICK", "index.html",
// new Browse("chrome", "70"),
// new Machine("amd", "2.7HZ", "64G"));
// System.out.println(JSON.toJSON(us));
// Calendar cal=Calendar.getInstance();
// cal.set(2020,0,1,0,0);
// cal.set(Calendar.HOUR_OF_DAY, 2);
// System.out.println(cal.getTime());
new WriteLogFile(1).write("d:/logs" );
}
}
package com.myh.kb13.t806.services6;
/**
* @Description:
* @author:myh
* @date: 2021/8/6 16:42
*/
public class UserAction {
private String userid;
private String goodid;
private String actTime;
private String actType;
private String page;
private Browse browse;
private Machine machine;
public UserAction() {
}
public UserAction(String userid, String goodid, String actTime, String actType, String page, Browse browse, Machine machine) {
this.userid = userid;
this.goodid = goodid;
this.actTime = actTime;
this.actType = actType;
this.page = page;
this.browse = browse;
this.machine = machine;
}
public String getUserid() {
return userid;
}
public void setUserid(String userid) {
this.userid = userid;
}
public String getGoodid() {
return goodid;
}
public void setGoodid(String goodid) {
this.goodid = goodid;
}
public String getActTime() {
return actTime;
}
public void setActTime(String actTime) {
this.actTime = actTime;
}
public String getActType() {
return actType;
}
public void setActType(String actType) {
this.actType = actType;
}
public String getPage() {
return page;
}
public void setPage(String page) {
this.page = page;
}
public Browse getBrowse() {
return browse;
}
public void setBrowse(Browse browse) {
this.browse = browse;
}
public Machine getMachine() {
return machine;
}
public void setMachine(Machine machine) {
this.machine = machine;
}
}
package com.myh.kb13.t806.services6;
/**
* @Description:
* @author:myh
* @date: 2021/8/6 16:45
*/
public class Machine {
private String cpuType;
private String cpuSeed;
private String memory;
public Machine(String cpuType, String cpuSeed, String memory) {
this.cpuType = cpuType;
this.cpuSeed = cpuSeed;
this.memory = memory;
}
public Machine() {
}
public String getCpuType() {
return cpuType;
}
public void setCpuType(String cpuType) {
this.cpuType = cpuType;
}
public String getCpuSeed() {
return cpuSeed;
}
public void setCpuSeed(String cpuSeed) {
this.cpuSeed = cpuSeed;
}
public String getMemory() {
return memory;
}
public void setMemory(String memory) {
this.memory = memory;
}
}
package com.myh.kb13.t806.services6;
/**
* @Description:
* @author:myh
* @date: 2021/8/6 16:41
*/
public class Browse {
private String browseType;
private String browseVersion;
public Browse() {
}
public Browse(String browseType, String browseVersion) {
this.browseType = browseType;
this.browseVersion = browseVersion;
}
public String getBrowseType() {
return browseType;
}
public void setBrowseType(String browseType) {
this.browseType = browseType;
}
public String getBrowseVersion() {
return browseVersion;
}
public void setBrowseVersion(String browseVersion) {
this.browseVersion = browseVersion;
}
}
效果