Skip to content

close #26 add log in AOP and start to it #27

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Jul 3, 2017
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,11 @@
<optional>true</optional>
</dependency>

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-aop</artifactId>
</dependency>

<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
Expand Down
67 changes: 67 additions & 0 deletions src/main/java/com/boylegu/springboot_vue/config/WebLogAspect.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
package com.boylegu.springboot_vue.config;

import org.apache.log4j.Logger;
import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.annotation.AfterReturning;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.aspectj.lang.annotation.Pointcut;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Component;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;

import javax.servlet.http.HttpServletRequest;
import java.util.Arrays;

/**
/**
* Created by gubaoer on 17/7/3.
*/


@Aspect
@Order(5)
@Component
public class WebLogAspect {

private Logger logger = Logger.getLogger(getClass());

ThreadLocal<Long> startTime = new ThreadLocal<>();

@Pointcut("execution(public * com.boylegu.springboot_vue.controller..*.*(..))")
public void webLog(){}

@Before("webLog()")
public void doBefore(JoinPoint joinPoint) throws Throwable {

startTime.set(System.currentTimeMillis());

ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();

HttpServletRequest request = attributes.getRequest();

logger.info("URL : " + request.getRequestURL().toString());

logger.info("HTTP_METHOD : " + request.getMethod());

logger.info("IP : " + request.getRemoteAddr());

logger.info("CLASS_METHOD : " + joinPoint.getSignature().getDeclaringTypeName() + "." + joinPoint.getSignature().getName());

logger.info("ARGS : " + Arrays.toString(joinPoint.getArgs()));

}

@AfterReturning(returning = "ret", pointcut = "webLog()")
public void doAfterReturning(Object ret) throws Throwable {


logger.info("RESPONSE : " + ret);

logger.info("SPEND TIME : " + (System.currentTimeMillis() - startTime.get()));
}


}

4 changes: 4 additions & 0 deletions src/main/java/com/boylegu/springboot_vue/dao/ErrorInfo.java
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,15 @@
public class ErrorInfo<T> {

public static final Integer OK = 0;

public static final Integer ERROR = 100;

private Integer code;

private String message;

private String url;

private T data;

public String getUrl() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,9 @@


public class ProjException extends Exception {

public ProjException(String message) {
super(message);
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -17,21 +17,32 @@ public class ProjExceptionHandler {

@ExceptionHandler(value = Exception.class)
public ModelAndView defaultErrorHandler(HttpServletRequest req, Exception e) throws Exception {

ModelAndView mav = new ModelAndView();

mav.addObject("exception", e);

mav.addObject("url", req.getRequestURL());

mav.setViewName("error");

return mav;
}

@ExceptionHandler(value = ProjException.class)
@ResponseBody
public ErrorInfo<String> jsonErrorHandler(HttpServletRequest req, ProjException e) throws Exception {

ErrorInfo<String> r = new ErrorInfo<>();

r.setMessage(e.getMessage());

r.setCode(ErrorInfo.ERROR);

r.setData("Some Data");

r.setUrl(req.getRequestURL().toString());

return r;
}

Expand Down
33 changes: 32 additions & 1 deletion src/main/resources/application.properties
Original file line number Diff line number Diff line change
Expand Up @@ -7,4 +7,35 @@ spring.datasource.driver-class-name = org.sqlite.JDBC
spring.jpa.database-platform=com.boylegu.springboot_vue.config.SQLiteDialect
spring.jpa.show-sql= true

com.boylegu.paginatio.max-per-page=7
com.boylegu.paginatio.max-per-page=7

# Log Config
log4j.rootCategory=INFO, stdout, file, errorfile
log4j.category.com.didispace=DEBUG, didifile
log4j.logger.error=errorfile

# Log Console input
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} %5p %c{1}:%L - %m%n

log4j.appender.file=org.apache.log4j.DailyRollingFileAppender
log4j.appender.file.file=logs/all.log
log4j.appender.file.DatePattern='.'yyyy-MM-dd
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} %5p %c{1}:%L - %m%n

# error log input
log4j.appender.errorfile=org.apache.log4j.DailyRollingFileAppender
log4j.appender.errorfile.file=logs/error.log
log4j.appender.errorfile.DatePattern='.'yyyy-MM-dd
log4j.appender.errorfile.Threshold = ERROR
log4j.appender.errorfile.layout=org.apache.log4j.PatternLayout
log4j.appender.errorfile.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} %5p %c{1}:%L - %m%n

log4j.appender.didifile=org.apache.log4j.DailyRollingFileAppender
log4j.appender.didifile.file=logs/gubaoer.log
log4j.appender.didifile.DatePattern='.'yyyy-MM-dd
log4j.appender.didifile.layout=org.apache.log4j.PatternLayout
log4j.appender.didifile.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} %5p %c{1}:%L ---- %m%n