SpringMvc 自定义日志拦截器打jar包

SpringMvc 自定义日志拦截器打jar包

可以实现HandlerInterceptor接口或者继承HandlerInterceptorAdapter,里面有三个方法preHandle、postHandle、afterCompletion。

拦截器例子:

public class ExLogInterceptor implements HandlerInterceptor {
	private  final Logger logger = LoggerFactory.getLogger(ExLogInterceptor.class);
	//session_key,用逗号分隔开
	private String session_key;
	//默认false
	//开启进入方法打印Attribute
	private String needEnterAttr;
	//开启进入方法打印Parameter
	private String needEnterParam;
	//开启退出方法打印Attribute
	private String needExitAttr;

	public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) {
		try{
			if(handler instanceof HandlerMethod){
				ExLog Log=new ExLog();
				Map<String,Object> sessionObjects=new HashMap<String,Object>();
				if(!StringUtils.isEmpty(getSession_key())){
					//使用逗号分隔
					String[] session_keys=getSession_key().replaceAll(",", ",").split(",");
					for(String session_key:session_keys){
						Object object=request.getSession().getAttribute(session_key);
						sessionObjects.put(session_key, object==null?"":object);
					}
					Log.setSessionObjects(sessionObjects);
					//通过threadLocal保存当前登录用户
					ExLogUtil.setThreadLocalLog(Log);
				}
				HandlerMethod method=(HandlerMethod)handler;
				//获取当前方法所在的当前类
				Class<?> clazz=method.getMethod().getDeclaringClass();
				//请求的类名
				String clazzName=clazz.getName();
				//请求的方法名
				String methodName=method.getMethod().getName();
				if(null!=getNeedEnterAttr()&&"true".equals(getNeedEnterAttr())){
					//遍历请求中Attribute
					Enumeration attrNames= request.getAttributeNames();
					while(attrNames.hasMoreElements()){
						String name=(String) attrNames.nextElement();
						Object Attrobject=request.getAttribute(name);
						logger.info("开始访问:controller:"+clazzName+",controllerMethod:"+methodName+",Attrname:"+name+"value:"+Attrobject.toString());
					}
				}
				if(null!=getNeedEnterParam()&&"true".equals(getNeedEnterParam())){
					//遍历请求中param
					Map<String, Object> paramMap=request.getParameterMap();
					for(Entry<String, Object> entry:paramMap.entrySet()){
						System.out.println("key:"+entry.getKey()+",value:"+entry.getValue().toString());
						logger.info("开始访问:controller:"+clazzName+",controllerMethod:"+methodName+",Param:key:"+entry.getKey()+",value:"+entry.getValue().toString());

					}
				}

				logger.info("开始访问:controller:"+clazzName+",controllerMethod:"+methodName+",sessionKV:"+ExLogUtil.getThreadLocalLog().toString());

				return true;
			}
		}catch (Exception e){
			e.printStackTrace();
		}
		return true;
	}

	public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler,
			ModelAndView modelAndView) throws Exception {
		try{
			if(handler instanceof HandlerMethod){
				HandlerMethod method=(HandlerMethod)handler;
				Class<?> clazz=method.getMethod().getDeclaringClass();
				String clazzName=clazz.getName();
				String methodName=method.getMethod().getName();
				logger.info("访问:controller:"+clazzName+",controllerMethod:"+methodName+",sessionKV:"+ExLogUtil.getThreadLocalLog().toString());
			}
		}catch (Exception e){
			e.printStackTrace();
		}
	}

	public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex)
			throws Exception {
		try{
			if(handler instanceof HandlerMethod){

				HandlerMethod method=(HandlerMethod)handler;
				Class<?> clazz=method.getMethod().getDeclaringClass();
				String clazzName=clazz.getName();
				String methodName=method.getMethod().getName();
				if(null!=getNeedExitAttr()&&"true".equals(getNeedExitAttr())){
					//遍历离开方法set如的Attribute
					Enumeration attrNames= request.getAttributeNames();
					while(attrNames.hasMoreElements()){
						String name=(String) attrNames.nextElement();
						Object Attrobject=request.getAttribute(name);
						logger.info("访问结束:controller:"+clazzName+",controllerMethod:"+methodName+",Attrname:"+name+"value:"+Attrobject.toString());
					}
				}
				logger.info("访问结束:controller:"+clazzName+",controllerMethod:"+methodName+",sessionKV:"+ExLogUtil.getThreadLocalLog().toString());
				ExLogUtil.remove();
			}
		}catch (Exception e){
			e.printStackTrace();
		}
	}

	public String getSession_key() {
		return session_key;
	}

	public void setSession_key(String session_key) {
		this.session_key = session_key;
	}

	public Logger getLogger() {
		return logger;
	}

	public String getNeedEnterAttr() {
		return needEnterAttr;
	}

	public void setNeedEnterAttr(String needEnterAttr) {
		this.needEnterAttr = needEnterAttr;
	}

	public String getNeedEnterParam() {
		return needEnterParam;
	}

	public void setNeedEnterParam(String needEnterParam) {
		this.needEnterParam = needEnterParam;
	}

	public String getNeedExitAttr() {
		return needExitAttr;
	}

	public void setNeedExitAttr(String needExitAttr) {
		this.needExitAttr = needExitAttr;
	}
}

日志类

public class ExLog {
	//sessionObject
	private Map<String,Object> sessionObjects;

	public Map<String, Object> getSessionObjects() {
		return sessionObjects;
	}

	public void setSessionObjects(Map<String, Object> sessionObjects) {
		this.sessionObjects = sessionObjects;
	}

	@Override
	public String toString() {
		StringBuffer stringBuffer=new StringBuffer("Log[SessionObjects=");
		if(null!=sessionObjects){
            for (Map.Entry<String,Object> entry:sessionObjects.entrySet()){
                stringBuffer.append("{");
                stringBuffer.append(entry.getKey());
                stringBuffer.append(":");
                stringBuffer.append(entry.getValue());
                stringBuffer.append("}");
            }
        }
        stringBuffer.append("]");
		return stringBuffer.toString();
	}
	
}

工具类

public class ExLogUtil {
	private static final ThreadLocal<ExLog> THREAD_LOCAL=new InheritableThreadLocal<ExLog>();
	
	public static ExLog getThreadLocalLog(){
		if(THREAD_LOCAL.get()==null){
			return new ExLog();
		}else{
			return THREAD_LOCAL.get();
		}
	}
	
	public static void setThreadLocalLog(ExLog log){
		THREAD_LOCAL.set(log);
	}
	
	public static void remove(){
		THREAD_LOCAL.remove();
	}
	

}

代码打包,引入springmvc的包,把当前代码打jar包(除去依赖包),然后就可以把jar包放到自己需要用到的项目中去

不会打包的请前往(idea版):https://blog.csdn.net/sdfiiiiii/article/details/80756162

在springmvc.xml中配置

<mvc:interceptors>
     <mvc:interceptor>  
     <!-- 匹配的是url路径, 如果不配置或/**,将拦截所有的Controller -->
      <mvc:mapping path="/**" />
         <!-- 拦截器类 --> 
         <!-- <bean class="com.grgbanking.framework.interceptor.ExLogInterceptor"></bean> -->
         <bean class="com.ex.interceptor.ExLogInterceptor">
         	<property name="session_key" value="SESSION_KEY_USER"></property>
         	<property name="needEnterParam" value="true"></property>
         	<property name="needEnterAttr" value="true"></property>
         	<property name="needExitAttr" value="true"></property>
         </bean>
     </mvc:interceptor>
        <!-- 当设置多个拦截器时,先按顺序调用preHandle方法,然后逆序调用每个拦截器的postHandle和afterCompletion方法 -->
</mvc:interceptors>

日志结果(日志格式可以按照自己需求直接改源码即可)

2019-02-01 10:47:23 INFO - 开始访问:controller:com.grgbanking.framework.system.user.controller.UserController,controllerMethod:login,Attrname:org.springframework.web.servlet.DispatcherServlet.FLASH_MAP_MANAGERvalue:org.springframework.web.servlet.support.SessionFlashMapManager@24911577
2019-02-01 10:47:23 INFO - 开始访问:controller:com.grgbanking.framework.system.user.controller.UserController,controllerMethod:login,Attrname:encodingFilter.FILTEREDvalue:true
2019-02-01 10:47:23 INFO - 开始访问:controller:com.grgbanking.framework.system.user.controller.UserController,controllerMethod:login,Attrname:org.springframework.web.servlet.DispatcherServlet.THEME_SOURCEvalue:WebApplicationContext for namespace 'springMvc-servlet': startup date [Fri Feb 01 10:45:59 CST 2019]; parent: Root WebApplicationContext
2019-02-01 10:47:23 INFO - 开始访问:controller:com.grgbanking.framework.system.user.controller.UserController,controllerMethod:login,Attrname:org.springframework.web.servlet.DispatcherServlet.THEME_RESOLVERvalue:org.springframework.web.servlet.theme.FixedThemeResolver@4bd6515d
2019-02-01 10:47:23 INFO - 开始访问:controller:com.grgbanking.framework.system.user.controller.UserController,controllerMethod:login,Attrname:org.springframework.web.servlet.DispatcherServlet.CONTEXTvalue:WebApplicationContext for namespace 'springMvc-servlet': startup date [Fri Feb 01 10:45:59 CST 2019]; parent: Root WebApplicationContext
2019-02-01 10:47:23 INFO - 开始访问:controller:com.grgbanking.framework.system.user.controller.UserController,controllerMethod:login,Attrname:org.springframework.core.convert.ConversionServicevalue:ConversionService converters =
	@org.springframework.format.annotation.DateTimeFormat java.lang.Long -> java.lang.String: org.springframework.format.datetime.joda.JodaDateTimeFormatAnnotationFormatterFactory@15bf0d95,@org.springframework.format.annotation.NumberFormat java.lang.Long -> java.lang.String: org.springframework.format.number.NumberFormatAnnotationFormatterFactory@507c60eb
	@org.springframework.format.annotation.DateTimeFormat java.util.Calendar -> java.lang.String: org.springframework.format.datetime.joda.JodaDateTimeFormatAnnotationFormatterFactory@15bf0d95
	@org.springframework.format.annotation.DateTimeFormat java.util.Date -> java.lang.String: org.springframework.format.datetime.joda.JodaDateTimeFormatAnnotationFormatterFactory@15bf0d95
	@org.springframework.format.annotation.DateTimeFormat org.joda.time.LocalDate -> java.lang.String: org.springframework.format.datetime.joda.JodaDateTimeFormatAnnotationFormatterFactory@15bf0d95,org.joda.time.LocalDate -> java.lang.String : org.springframework.format.datetime.joda.ReadablePartialPrinter@25c86eff
	@org.springframework.format.annotation.DateTimeFormat org.joda.time.LocalDateTime -> java.lang.String: org.springframework.format.datetime.joda.JodaDateTimeFormatAnnotationFormatterFactory@15bf0d95,org.joda.time.LocalDateTime -> java.lang.String : org.springframework.format.datetime.joda.ReadablePartialPrinter@69b56d25
	@org.springframework.format.annotation.DateTimeFormat org.joda.time.LocalTime -> java.lang.String: org.springframework.format.datetime.joda.JodaDateTimeFormatAnnotationFormatterFactory@15bf0d95,org.joda.time.LocalTime -> java.lang.String : org.springframework.format.datetime.joda.ReadablePartialPrinter@38f88e6e
	@org.springframework.format.annotation.DateTimeFormat org.joda.time.ReadableInstant -> java.lang.String: org.springframework.format.datetime.joda.JodaDateTimeFormatAnnotationFormatterFactory@15bf0d95,org.joda.time.ReadableInstant -> java.lang.String : org.springframework.format.datetime.joda.ReadableInstantPrinter@395bbb79
	@org.springframework.format.annotation.NumberFormat java.lang.Byte -> java.lang.String: org.springframework.format.number.NumberFormatAnnotationFormatterFactory@507c60eb
	@org.springframework.format.annotation.NumberFormat java.lang.Double -> java.lang.String: org.springframework.format.number.NumberFormatAnnotationFormatterFactory@507c60eb
	@org.springframework.format.annotation.NumberFormat java.lang.Float -> java.lang.String: org.springframework.format.number.NumberFormatAnnotationFormatterFactory@507c60eb
	@org.springframework.format.annotation.NumberFormat java.lang.Integer -> java.lang.String: org.springframework.format.number.NumberFormatAnnotationFormatterFactory@507c60eb
	@org.springframework.format.annotation.NumberFormat java.lang.Short -> java.lang.String: org.springframework.format.number.NumberFormatAnnotationFormatterFactory@507c60eb
	@org.springframework.format.annotation.NumberFormat java.math.BigDecimal -> java.lang.String: org.springframework.format.number.NumberFormatAnnotationFormatterFactory@507c60eb
	@org.springframework.format.annotation.NumberFormat java.math.BigInteger -> java.lang.String: org.springframework.format.number.NumberFormatAnnotationFormatterFactory@507c60eb
	java.lang.Boolean -> java.lang.String : org.springframework.core.convert.support.ObjectToStringConverter@5ed271e0
	java.lang.Character -> java.lang.Number : org.springframework.core.convert.support.CharacterToNumberFactory@26589349
	java.lang.Character -> java.lang.String : org.springframework.core.convert.support.ObjectToStringConverter@26331c38
	java.lang.Enum -> java.lang.Integer : org.springframework.core.convert.support.EnumToIntegerConverter@5abaa8f1
	java.lang.Enum -> java.lang.String : org.springframework.core.convert.support.EnumToStringConverter@2fa2f59c
	java.lang.Integer -> java.lang.Enum : org.springframework.core.convert.support.IntegerToEnumConverterFactory@73aaed32
	java.lang.Long -> java.util.Calendar : org.springframework.format.datetime.DateFormatterRegistrar$LongToCalendarConverter@51147380
	java.lang.Long -> java.util.Date : org.springframework.format.datetime.DateFormatterRegistrar$LongToDateConverter@56d55a31
	java.lang.Long -> org.joda.time.ReadableInstant : org.springframework.format.datetime.joda.JodaTimeConverters$LongToReadableInstantConverter@52f99715
	java.lang.Number -> java.lang.Character : org.springframework.core.convert.support.NumberToCharacterConverter@6581b41f
	java.lang.Number -> java.lang.Number : org.springframework.core.convert.support.NumberToNumberConverterFactory@6377d790
	java.lang.Number -> java.lang.String : org.springframework.core.convert.support.ObjectToStringConverter@a1e03ac
	java.lang.String -> @org.springframework.format.annotation.DateTimeFormat java.lang.Long: org.springframework.format.datetime.joda.JodaDateTimeFormatAnnotationFormatterFactory@15bf0d95,java.lang.String -> @org.springframework.format.annotation.NumberFormat java.lang.Long: org.springframework.format.number.NumberFormatAnnotationFormatterFactory@507c60eb
	java.lang.String -> @org.springframework.format.annotation.DateTimeFormat java.util.Calendar: org.springframework.format.datetime.joda.JodaDateTimeFormatAnnotationFormatterFactory@15bf0d95
	java.lang.String -> @org.springframework.format.annotation.DateTimeFormat java.util.Date: org.springframework.format.datetime.joda.JodaDateTimeFormatAnnotationFormatterFactory@15bf0d95
	java.lang.String -> @org.springframework.format.annotation.DateTimeFormat org.joda.time.LocalDate: org.springframework.format.datetime.joda.JodaDateTimeFormatAnnotationFormatterFactory@15bf0d95,java.lang.String -> org.joda.time.LocalDate: org.springframework.format.datetime.joda.LocalDateParser@9ef3aba
	java.lang.String -> @org.springframework.format.annotation.DateTimeFormat org.joda.time.LocalDateTime: org.springframework.format.datetime.joda.JodaDateTimeFormatAnnotationFormatterFactory@15bf0d95,java.lang.String -> org.joda.time.LocalDateTime: org.springframework.format.datetime.joda.LocalDateTimeParser@610ce5b
	java.lang.String -> @org.springframework.format.annotation.DateTimeFormat org.joda.time.LocalTime: org.springframework.format.datetime.joda.JodaDateTimeFormatAnnotationFormatterFactory@15bf0d95,java.lang.String -> org.joda.time.LocalTime: org.springframework.format.datetime.joda.LocalTimeParser@464ef4fa
	java.lang.String -> @org.springframework.format.annotation.DateTimeFormat org.joda.time.ReadableInstant: org.springframework.format.datetime.joda.JodaDateTimeFormatAnnotationFormatterFactory@15bf0d95,java.lang.String -> org.joda.time.ReadableInstant: org.springframework.format.datetime.joda.DateTimeParser@3571225a
	java.lang.String -> @org.springframework.format.annotation.NumberFormat java.lang.Byte: org.springframework.format.number.NumberFormatAnnotationFormatterFactory@507c60eb
	java.lang.String -> @org.springframework.format.annotation.NumberFormat java.lang.Double: org.springframework.format.number.NumberFormatAnnotationFormatterFactory@507c60eb
	java.lang.String -> @org.springframework.format.annotation.NumberFormat java.lang.Float: org.springframework.format.number.NumberFormatAnnotationFormatterFactory@507c60eb
	java.lang.String -> @org.springframework.format.annotation.NumberFormat java.lang.Integer: org.springframework.format.number.NumberFormatAnnotationFormatterFactory@507c60eb
	java.lang.String -> @org.springframework.format.annotation.NumberFormat java.lang.Short: org.springframework.format.number.NumberFormatAnnotationFormatterFactory@507c60eb
	java.lang.String -> @org.springframework.format.annotation.NumberFormat java.math.BigDecimal: org.springframework.format.number.NumberFormatAnnotationFormatterFactory@507c60eb
	java.lang.String -> @org.springframework.format.annotation.NumberFormat java.math.BigInteger: org.springframework.format.number.NumberFormatAnnotationFormatterFactory@507c60eb
	java.lang.String -> java.lang.Boolean : org.springframework.core.convert.support.StringToBooleanConverter@12db14a
	java.lang.String -> java.lang.Character : org.springframework.core.convert.support.StringToCharacterConverter@38831664
	java.lang.String -> java.lang.Enum : org.springframework.core.convert.support.StringToEnumConverterFactory@4a3259c2
	java.lang.String -> java.lang.Number : org.springframework.core.convert.support.StringToNumberConverterFactory@50e961f4
	java.lang.String -> java.nio.charset.Charset : org.springframework.core.convert.support.StringToCharsetConverter@3a905060
	java.lang.String -> java.util.Currency : org.springframework.core.convert.support.StringToCurrencyConverter@c0578aa
	java.lang.String -> java.util.Locale : org.springframework.core.convert.support.StringToLocaleConverter@14a994c0
	java.lang.String -> java.util.Properties : org.springframework.core.convert.support.StringToPropertiesConverter@e2de9ce
	java.lang.String -> java.util.UUID : org.springframework.core.convert.support.StringToUUIDConverter@14433f72
	java.lang.String -> org.joda.time.Duration: org.springframework.format.datetime.joda.DurationFormatter@4f8d50c6
	java.lang.String -> org.joda.time.MonthDay: org.springframework.format.datetime.joda.MonthDayFormatter@5850b563
	java.lang.String -> org.joda.time.Period: org.springframework.format.datetime.joda.PeriodFormatter@16865e1f
	java.lang.String -> org.joda.time.YearMonth: org.springframework.format.datetime.joda.YearMonthFormatter@46b21ff7
	java.nio.charset.Charset -> java.lang.String : org.springframework.core.convert.support.ObjectToStringConverter@588ceca9
	java.util.Calendar -> java.lang.Long : org.springframework.format.datetime.DateFormatterRegistrar$CalendarToLongConverter@6c4d8ad3
	java.util.Calendar -> java.util.Date : org.springframework.format.datetime.DateFormatterRegistrar$CalendarToDateConverter@72041dff
	java.util.Calendar -> org.joda.time.ReadableInstant : org.springframework.format.datetime.joda.JodaTimeConverters$CalendarToReadableInstantConverter@54d0b863
	java.util.Currency -> java.lang.String : org.springframework.core.convert.support.ObjectToStringConverter@3b34e710
	java.util.Date -> java.lang.Long : org.springframework.format.datetime.DateFormatterRegistrar$DateToLongConverter@3214bc5a
	java.util.Date -> java.util.Calendar : org.springframework.format.datetime.DateFormatterRegistrar$DateToCalendarConverter@6f59d265
	java.util.Date -> org.joda.time.ReadableInstant : org.springframework.format.datetime.joda.JodaTimeConverters$DateToReadableInstantConverter@7ebda5ce
	java.util.Locale -> java.lang.String : org.springframework.core.convert.support.ObjectToStringConverter@964d3d9
	java.util.Properties -> java.lang.String : org.springframework.core.convert.support.PropertiesToStringConverter@6850daa7
	java.util.UUID -> java.lang.String : org.springframework.core.convert.support.ObjectToStringConverter@4afa5fc2
	org.joda.time.DateTime -> java.lang.Long : org.springframework.format.datetime.joda.JodaTimeConverters$DateTimeToLongConverter@532282dd
	org.joda.time.DateTime -> java.util.Calendar : org.springframework.format.datetime.joda.JodaTimeConverters$DateTimeToCalendarConverter@32e4eb85
	org.joda.time.DateTime -> java.util.Date : org.springframework.format.datetime.joda.JodaTimeConverters$DateTimeToDateConverter@6a2eeb2
	org.joda.time.DateTime -> org.joda.time.DateMidnight : org.springframework.format.datetime.joda.JodaTimeConverters$DateTimeToDateMidnightConverter@1174e5f6
	org.joda.time.DateTime -> org.joda.time.Instant : org.springframework.format.datetime.joda.JodaTimeConverters$DateTimeToInstantConverter@9160ccf
	org.joda.time.DateTime -> org.joda.time.LocalDate : org.springframework.format.datetime.joda.JodaTimeConverters$DateTimeToLocalDateConverter@15ab0216
	org.joda.time.DateTime -> org.joda.time.LocalDateTime : org.springframework.format.datetime.joda.JodaTimeConverters$DateTimeToLocalDateTimeConverter@45b396da
	org.joda.time.DateTime -> org.joda.time.LocalTime : org.springframework.format.datetime.joda.JodaTimeConverters$DateTimeToLocalTimeConverter@e15fd77
	org.joda.time.DateTime -> org.joda.time.MutableDateTime : org.springframework.format.datetime.joda.JodaTimeConverters$DateTimeToMutableDateTimeConverter@11a5826e
	org.joda.time.Duration -> java.lang.String : org.springframework.format.datetime.joda.DurationFormatter@4f8d50c6
	org.joda.time.LocalDateTime -> org.joda.time.LocalDate : org.springframework.format.datetime.joda.JodaTimeConverters$LocalDateTimeToLocalDateConverter@2e0e42
	org.joda.time.LocalDateTime -> org.joda.time.LocalTime : org.springframework.format.datetime.joda.JodaTimeConverters$LocalDateTimeToLocalTimeConverter@4faa0f25
	org.joda.time.MonthDay -> java.lang.String : org.springframework.format.datetime.joda.MonthDayFormatter@5850b563
	org.joda.time.Period -> java.lang.String : org.springframework.format.datetime.joda.PeriodFormatter@16865e1f
	org.joda.time.YearMonth -> java.lang.String : org.springframework.format.datetime.joda.YearMonthFormatter@46b21ff7
	org.springframework.core.convert.support.ArrayToArrayConverter@32e6e278
	org.springframework.core.convert.support.ArrayToCollectionConverter@7ba4e002
	org.springframework.core.convert.support.ArrayToObjectConverter@3939369c
	org.springframework.core.convert.support.ArrayToStringConverter@501ccc66
	org.springframework.core.convert.support.ByteBufferConverter@5163164f
	org.springframework.core.convert.support.ByteBufferConverter@5163164f
	org.springframework.core.convert.support.ByteBufferConverter@5163164f
	org.springframework.core.convert.support.ByteBufferConverter@5163164f
	org.springframework.core.convert.support.CollectionToArrayConverter@56ee2b9
	org.springframework.core.convert.support.CollectionToCollectionConverter@541e4e63
	org.springframework.core.convert.support.CollectionToObjectConverter@207d22ae
	org.springframework.core.convert.support.CollectionToStringConverter@432aadb0
	org.springframework.core.convert.support.FallbackObjectToStringConverter@5ff31743
	org.springframework.core.convert.support.IdToEntityConverter@404dc647,org.springframework.core.convert.support.ObjectToObjectConverter@3214804c
	org.springframework.core.convert.support.MapToMapConverter@11ac70ba
	org.springframework.core.convert.support.ObjectToArrayConverter@5b30591d
	org.springframework.core.convert.support.ObjectToCollectionConverter@776fde2b
	org.springframework.core.convert.support.StringToArrayConverter@12af65a1
	org.springframework.core.convert.support.StringToCollectionConverter@26f12043

2019-02-01 10:47:23 INFO - 开始访问:controller:com.grgbanking.framework.system.user.controller.UserController,controllerMethod:login,Attrname:org.springframework.web.servlet.HandlerMapping.pathWithinHandlerMappingvalue:/user/login.do
2019-02-01 10:47:23 INFO - 开始访问:controller:com.grgbanking.framework.system.user.controller.UserController,controllerMethod:login,Attrname:org.springframework.web.context.request.async.WebAsyncManager.WEB_ASYNC_MANAGERvalue:org.springframework.web.context.request.async.WebAsyncManager@5de9e398
2019-02-01 10:47:23 INFO - 开始访问:controller:com.grgbanking.framework.system.user.controller.UserController,controllerMethod:login,Attrname:org.springframework.web.servlet.DispatcherServlet.OUTPUT_FLASH_MAPvalue:FlashMap [attributes={}, targetRequestPath=null, targetRequestParams={}]
2019-02-01 10:47:23 INFO - 开始访问:controller:com.grgbanking.framework.system.user.controller.UserController,controllerMethod:login,Attrname:org.springframework.web.servlet.HandlerMapping.uriTemplateVariablesvalue:{}
2019-02-01 10:47:23 INFO - 开始访问:controller:com.grgbanking.framework.system.user.controller.UserController,controllerMethod:login,Attrname:org.springframework.web.servlet.HandlerMapping.bestMatchingPatternvalue:/user/login.*
2019-02-01 10:47:23 INFO - 开始访问:controller:com.grgbanking.framework.system.user.controller.UserController,controllerMethod:login,Attrname:org.springframework.web.context.request.RequestContextListener.REQUEST_ATTRIBUTESvalue:org.apache.catalina.connector.Request@a30d498
2019-02-01 10:47:23 INFO - 开始访问:controller:com.grgbanking.framework.system.user.controller.UserController,controllerMethod:login,Attrname:org.springframework.web.servlet.DispatcherServlet.LOCALE_RESOLVERvalue:org.springframework.web.servlet.i18n.AcceptHeaderLocaleResolver@22c8879b
2019-02-01 10:47:23 INFO - 开始访问:controller:com.grgbanking.framework.system.user.controller.UserController,controllerMethod:login,user:Log [SessionObject=UserBean [userId=2345678, userNm=测试用户, job=null, mobile=13600000004, sex=null, email=null, wxId=null, wxNickname=测试用户, avatarMediaId=null, avatar=null, userSt=0, extattr=null, vld_f=null, crtTm=null, lastUdtTm=2018-04-17 09:18:45.0, upldUserId=39194, ehrOrgId=B3578, smcOrgNo=206, oldPassword=null, newPassword=null, confirmPassword=null]]
2019-02-01 10:47:23 INFO - BaseController:/wcboc/user/login.do
2019-02-01 10:47:23 INFO - 访问:controller:com.grgbanking.framework.system.user.controller.UserController,controllerMethod:login,user:Log [SessionObject=UserBean [userId=2345678, userNm=测试用户, job=null, mobile=13600000004, sex=null, email=null, wxId=null, wxNickname=测试用户, avatarMediaId=null, avatar=null, userSt=0, extattr=null, vld_f=null, crtTm=null, lastUdtTm=2018-04-17 09:18:45.0, upldUserId=39194, ehrOrgId=B3578, smcOrgNo=206, oldPassword=null, newPassword=null, confirmPassword=null]]
2019-02-01 10:47:23 INFO - 访问结束:controller:com.grgbanking.framework.system.user.controller.UserController,controllerMethod:login,user:Log [SessionObject=UserBean [userId=2345678, userNm=测试用户, job=null, mobile=13600000004, sex=null, email=null, wxId=null, wxNickname=测试用户, avatarMediaId=null, avatar=null, userSt=0, extattr=null, vld_f=null, crtTm=null, lastUdtTm=2018-04-17 09:18:45.0, upldUserId=39194, ehrOrgId=B3578, smcOrgNo=206, oldPassword=null, newPassword=null, confirmPassword=null]]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值