文章目录
1 多Module的创建
1.1 Maven
首先创建普通Maven项目
1.2 添加Module
1.3 pom管理
多Module的
在主工程pom中配置
</dependencyManagement>
并配置详细版本
子工程中的pom文件不需要再进行配置版本
2 code
2.1 客户端
Access
public class Access {
private int id;
private String name;
private String time;
@Override
public String toString(){
return id + "\t" + name + "\t" + time;
}
UploadUtils
package utils;
import java.io.IOException;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
public class UploadUtils {
public static void upload(String path,String log){
try {
URL url = new URL(path);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
// GET POST
connection.setRequestMethod("POST");
connection.setDoOutput(true);
// json数据==>application/json
connection.setRequestProperty("Content-Type","application/text");
OutputStream out = connection.getOutputStream();
out.write(log.getBytes());
out.flush();
out.close();
int responseCode = connection.getResponseCode();
System.out.println(responseCode);
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
2.2 服务端
LogController
import org.apache.log4j.Logger;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.ResponseBody;
@Controller
public class LogController {
private static final Logger logger = Logger.getLogger("LogController");
@PostMapping(value = "/upload")
@ResponseBody
public void upload(@RequestBody String log) {
System.out.println(log);
logger.info(log);
}
}
MokeData
package utils;
import domian.Access;
import org.junit.Test;
import javax.xml.crypto.Data;
import java.text.SimpleDateFormat;
import java.util.Date;
import static java.lang.String.format;
public class MockData {
public static final String URL = "http://localhost:9527/log/upload";
SimpleDateFormat format = new SimpleDateFormat("HH:mm:ss");
@Test
public void testUpload() throws InterruptedException {
for(int i = 1; i <= 1000; i++){
Thread.sleep(1000);
Access access = new Access();
access.setName("ifeng"+i);
access.setId(i);
access.setTime(format.format(new Date()));
System.out.println(access);
UploadUtils.upload(URL,access.toString());
}
}
}
log写入本地
log4j.properties
log4j.appender.ingrate=org.apache.log4j.DailyRollingFileAppender
log4j.appender.ingrate.file=../logs/access.log
log4j.appender.ingrate.DatePattern='.'yyyy-MM-dd
log4j.appender.ingrate.layout=org.apache.log4j.PatternLayout
log4j.appender.ingrate.layout.ConversionPattern=%m%n
log4j.rootLogger=info,ingrate
3 打包到Server
package
很神奇的 pom下的这一段需要删掉
上传到Server
执行jar包
java -jar ../lib/ifeng-log-1.0.jar
nohup
没有主类
只打包log-server
显示已经启动
启动Mockdata