Skip to content

基于spring的aop特性,提供了一种通过注解打日志的方式,可以方便而且没有侵入性地记录程序运行过程中的各种重要日志

Notifications You must be signed in to change notification settings

winter4666/fastlog

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 

Repository files navigation

fastlog

基于spring的aop特性,提供了一种通过注解打日志的方式,可以方便而且没有侵入性地记录程序运行过程中的各种重要日志

使用方法

  1. 修改spring配置,启用@AspectJ支持
<aop:aspectj-autoproxy/>
  1. 实现FastLogListener接口
public class OperLogRecorder implements FastLogListener {

	@Override
	public void log(String logType, List<LogField> logFields,Map<String, Object> contextMap) {
		StringBuilder logFieldsStr = new StringBuilder();
		for(LogField logField : logFields) {
			logFieldsStr.append(logField.getFieldName())
						.append(":")
						.append(logField.getFieldValue())
						.append(" ");
		}
		System.out.println("logType:" + logType + ",logFields:" + logFieldsStr + ",contextMap:" + contextMap);
	}
}
  1. FastLogAspect注入spring
<bean id="operLogRecorder" class="xxx.xxx.OperLogRecorder"/>
	
<bean class="com.github.winter4666.fastlog.FastLogAspect">
    <constructor-arg name="fastLogListener" ref="operLogRecorder"/>
</bean>
  1. 在需要记录日志的方法上面加上@FastLog注解,fieldValues里面填写的字符串为SpEL
@FastLog(value="userLogin",			
		fieldNames={"用户名","密码"},
		fieldValues={"#a0","#a1"})
public void login(String username, String password) {
	FastLogContext.put("测试", "任意值");
}
  1. 当上面注解的方法被调用时,FastLogListenerlog方法被回调,打印出下面的信息
logType:userLogin,logFields:用户名:test 密码:1234 ,contextMap:{测试=任意值}

About

基于spring的aop特性,提供了一种通过注解打日志的方式,可以方便而且没有侵入性地记录程序运行过程中的各种重要日志

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages