在资源包下 创建一个properties文件 配置一下内容
### set log levels ###
log4j.rootLogger = debug , stdout , D
### \u8F93\u51FA\u5230\u63A7\u5236\u53F0 ###
log4j.appender.stdout = org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target = System.out
log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern = %d{ABSOLUTE} %5p %c{ 1 }:%L - %m%n
### \u8F93\u51FA\u5230\u65E5\u5FD7\u6587\u4EF6 ###
log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
log4j.appender.D.File = c:/logs/log.log
log4j.appender.D.Append = true
log4j.appender.D.Threshold = DEBUG ## \u8F93\u51FADEBUG\u7EA7\u522B\u4EE5\u4E0A\u7684\u65E5\u5FD7
log4j.appender.D.layout = org.apache.log4j.PatternLayout
log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n
在pom.xml导入 log4j jar包
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.9</version>
</dependency>
例
package lesson03.log;
import org.springframework.stereotype.Component;
@Component
public class Admin {
public void addCom(){
System.out.println("添加商品");
}
}
package lesson03.log;
import org.apache.log4j.Logger;
import org.aspectj.lang.JoinPoint;
import org.springframework.stereotype.Component;
@Component
public class MyMessage {
Logger logger=Logger.getLogger(MyMessage.class);
public void beforeSeek(JoinPoint jp){
String method=jp.getSignature().getName();
logger.debug("方法:"+method+"被调用");
}
}
package lesson03.log;
import java.sql.SQLException;
import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class TestCotiner {
static ConfigurableApplicationContext context;
static{
context=new ClassPathXmlApplicationContext("lesson03/log/spring.xml");
}
public static void main(String[] args) throws SQLException {
User af=(User) context.getBean("user");
af.login();
Admin admin=(Admin)context.getBean("admin");
admin.addCom();
admin.addCom();
context.close();
}
}
package lesson03.log;
import org.springframework.stereotype.Component;
@Component
public class User {
public void login(){
System.out.println("用户登录");
}
public void buy(){
System.out.println("买东西");
}
}
spring..xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.2.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.2.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.2.xsd
">
<context:component-scan base-package="lesson03.log">
</context:component-scan>
<aop:config>
<!-- 定义切点(搜索条件)
表达式 execution(返回值 包.类.方法(参数))
-->
<aop:pointcut expression="execution(* lesson03.log.*.*(..))" id="myPointCut"/>
<aop:aspect ref="myMessage">
<aop:before method="beforeSeek" pointcut-ref="myPointCut"/>
</aop:aspect>
</aop:config>
</beans>