Skip to content

Commit a5eb49e

Browse files
顾鲍尔顾鲍尔
authored andcommitted
close boylegu#26 add log in AOP and start to it
1 parent 0227297 commit a5eb49e

File tree

6 files changed

+121
-1
lines changed

6 files changed

+121
-1
lines changed

pom.xml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,11 @@
6060
<optional>true</optional>
6161
</dependency>
6262

63+
<dependency>
64+
<groupId>org.springframework.boot</groupId>
65+
<artifactId>spring-boot-starter-aop</artifactId>
66+
</dependency>
67+
6368
<dependency>
6469
<groupId>org.hibernate</groupId>
6570
<artifactId>hibernate-core</artifactId>
Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
package com.boylegu.springboot_vue.config;
2+
3+
import org.apache.log4j.Logger;
4+
import org.aspectj.lang.JoinPoint;
5+
import org.aspectj.lang.annotation.AfterReturning;
6+
import org.aspectj.lang.annotation.Aspect;
7+
import org.aspectj.lang.annotation.Before;
8+
import org.aspectj.lang.annotation.Pointcut;
9+
import org.springframework.core.annotation.Order;
10+
import org.springframework.stereotype.Component;
11+
import org.springframework.web.context.request.RequestContextHolder;
12+
import org.springframework.web.context.request.ServletRequestAttributes;
13+
14+
import javax.servlet.http.HttpServletRequest;
15+
import java.util.Arrays;
16+
17+
/**
18+
/**
19+
* Created by gubaoer on 17/7/3.
20+
*/
21+
22+
23+
@Aspect
24+
@Order(5)
25+
@Component
26+
public class WebLogAspect {
27+
28+
private Logger logger = Logger.getLogger(getClass());
29+
30+
ThreadLocal<Long> startTime = new ThreadLocal<>();
31+
32+
@Pointcut("execution(public * com.boylegu.springboot_vue.controller..*.*(..))")
33+
public void webLog(){}
34+
35+
@Before("webLog()")
36+
public void doBefore(JoinPoint joinPoint) throws Throwable {
37+
38+
startTime.set(System.currentTimeMillis());
39+
40+
ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
41+
42+
HttpServletRequest request = attributes.getRequest();
43+
44+
logger.info("URL : " + request.getRequestURL().toString());
45+
46+
logger.info("HTTP_METHOD : " + request.getMethod());
47+
48+
logger.info("IP : " + request.getRemoteAddr());
49+
50+
logger.info("CLASS_METHOD : " + joinPoint.getSignature().getDeclaringTypeName() + "." + joinPoint.getSignature().getName());
51+
52+
logger.info("ARGS : " + Arrays.toString(joinPoint.getArgs()));
53+
54+
}
55+
56+
@AfterReturning(returning = "ret", pointcut = "webLog()")
57+
public void doAfterReturning(Object ret) throws Throwable {
58+
59+
60+
logger.info("RESPONSE : " + ret);
61+
62+
logger.info("SPEND TIME : " + (System.currentTimeMillis() - startTime.get()));
63+
}
64+
65+
66+
}
67+

src/main/java/com/boylegu/springboot_vue/dao/ErrorInfo.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,15 @@
77
public class ErrorInfo<T> {
88

99
public static final Integer OK = 0;
10+
1011
public static final Integer ERROR = 100;
1112

1213
private Integer code;
14+
1315
private String message;
16+
1417
private String url;
18+
1519
private T data;
1620

1721
public String getUrl() {

src/main/java/com/boylegu/springboot_vue/exception/ProjException.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,9 @@
66

77

88
public class ProjException extends Exception {
9+
910
public ProjException(String message) {
1011
super(message);
1112
}
13+
1214
}

src/main/java/com/boylegu/springboot_vue/exception/ProjExceptionHandler.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,21 +17,32 @@ public class ProjExceptionHandler {
1717

1818
@ExceptionHandler(value = Exception.class)
1919
public ModelAndView defaultErrorHandler(HttpServletRequest req, Exception e) throws Exception {
20+
2021
ModelAndView mav = new ModelAndView();
22+
2123
mav.addObject("exception", e);
24+
2225
mav.addObject("url", req.getRequestURL());
26+
2327
mav.setViewName("error");
28+
2429
return mav;
2530
}
2631

2732
@ExceptionHandler(value = ProjException.class)
2833
@ResponseBody
2934
public ErrorInfo<String> jsonErrorHandler(HttpServletRequest req, ProjException e) throws Exception {
35+
3036
ErrorInfo<String> r = new ErrorInfo<>();
37+
3138
r.setMessage(e.getMessage());
39+
3240
r.setCode(ErrorInfo.ERROR);
41+
3342
r.setData("Some Data");
43+
3444
r.setUrl(req.getRequestURL().toString());
45+
3546
return r;
3647
}
3748

src/main/resources/application.properties

Lines changed: 32 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,4 +7,35 @@ spring.datasource.driver-class-name = org.sqlite.JDBC
77
spring.jpa.database-platform=com.boylegu.springboot_vue.config.SQLiteDialect
88
spring.jpa.show-sql= true
99

10-
com.boylegu.paginatio.max-per-page=7
10+
com.boylegu.paginatio.max-per-page=7
11+
12+
# Log Config
13+
log4j.rootCategory=INFO, stdout, file, errorfile
14+
log4j.category.com.didispace=DEBUG, didifile
15+
log4j.logger.error=errorfile
16+
17+
# Log Console input
18+
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
19+
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
20+
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} %5p %c{1}:%L - %m%n
21+
22+
log4j.appender.file=org.apache.log4j.DailyRollingFileAppender
23+
log4j.appender.file.file=logs/all.log
24+
log4j.appender.file.DatePattern='.'yyyy-MM-dd
25+
log4j.appender.file.layout=org.apache.log4j.PatternLayout
26+
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} %5p %c{1}:%L - %m%n
27+
28+
# error log input
29+
log4j.appender.errorfile=org.apache.log4j.DailyRollingFileAppender
30+
log4j.appender.errorfile.file=logs/error.log
31+
log4j.appender.errorfile.DatePattern='.'yyyy-MM-dd
32+
log4j.appender.errorfile.Threshold = ERROR
33+
log4j.appender.errorfile.layout=org.apache.log4j.PatternLayout
34+
log4j.appender.errorfile.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} %5p %c{1}:%L - %m%n
35+
36+
log4j.appender.didifile=org.apache.log4j.DailyRollingFileAppender
37+
log4j.appender.didifile.file=logs/gubaoer.log
38+
log4j.appender.didifile.DatePattern='.'yyyy-MM-dd
39+
log4j.appender.didifile.layout=org.apache.log4j.PatternLayout
40+
log4j.appender.didifile.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} %5p %c{1}:%L ---- %m%n
41+

0 commit comments

Comments
 (0)