/**
*
*/
package com.dtm.log;
import java.net.InetAddress;
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
import org.springframework.stereotype.Component;
import com.dtm.model.Sys_User;
import com.opensymphony.xwork2.ActionContext;
/**
* * AOP注解方法实现日志管理 利用spring AOP 切面技术记录日志 定义切面类(这个是切面类和切入点整合在一起的),这种情况是共享切入点情况;
*
* @author jianghong
*
* @createDate 2014年7月12日 上午10:24:46
*
* @file LogAopAction.java
*
* @pakage com.dtm.log
*
* @email jiangjianhua123@qq.com
*
* @version 0.1
*
*/
@Aspect
// 该注解标示该类为切面类
@Component
public class LogAopAction {
@Around("execution(* com.dtm.*.service.impl.*.* (..))")
public Object logAll(ProceedingJoinPoint point) {
Object result = null;
// 执行方法名
String methodName = point.getSignature().getName();
String className = point.getTarget().getClass().getSimpleName();
String user = null;
Long start = 0L;
Long end = 0L;
String ip = null;
// 当前用户
try {
// 执行方法所消耗的时间
start = System.currentTimeMillis();
result = point.proceed();
end = System.currentTimeMillis();
// ip
ip = InetAddress.getLocalHost().getHostAddress();
// 登录名
Sys_User sys_User = (Sys_User) ActionContext.getContext().getSession().get("user");
user = sys_User.getName();
// System.out.println("Username:" +user);
} catch (Throwable e) {
// e.printStackTrace();
}
System.err.println("消耗时间:"+(end-start)+" ip:"+ip+" methodName:"+methodName+" className:"+className+" user:"+user);
return result;
}
}
*
*/
package com.dtm.log;
import java.net.InetAddress;
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
import org.springframework.stereotype.Component;
import com.dtm.model.Sys_User;
import com.opensymphony.xwork2.ActionContext;
/**
* * AOP注解方法实现日志管理 利用spring AOP 切面技术记录日志 定义切面类(这个是切面类和切入点整合在一起的),这种情况是共享切入点情况;
*
* @author jianghong
*
* @createDate 2014年7月12日 上午10:24:46
*
* @file LogAopAction.java
*
* @pakage com.dtm.log
*
* @email jiangjianhua123@qq.com
*
* @version 0.1
*
*/
@Aspect
// 该注解标示该类为切面类
@Component
public class LogAopAction {
@Around("execution(* com.dtm.*.service.impl.*.* (..))")
public Object logAll(ProceedingJoinPoint point) {
Object result = null;
// 执行方法名
String methodName = point.getSignature().getName();
String className = point.getTarget().getClass().getSimpleName();
String user = null;
Long start = 0L;
Long end = 0L;
String ip = null;
// 当前用户
try {
// 执行方法所消耗的时间
start = System.currentTimeMillis();
result = point.proceed();
end = System.currentTimeMillis();
// ip
ip = InetAddress.getLocalHost().getHostAddress();
// 登录名
Sys_User sys_User = (Sys_User) ActionContext.getContext().getSession().get("user");
user = sys_User.getName();
// System.out.println("Username:" +user);
} catch (Throwable e) {
// e.printStackTrace();
}
System.err.println("消耗时间:"+(end-start)+" ip:"+ip+" methodName:"+methodName+" className:"+className+" user:"+user);
return result;
}
}