• 通过AOP引入Log4j


    AOP 面向切面的编程

    要明确下面几个概念

    切面(Aspect):用于组织多个增强处理Advice,Advice放在切面中定义;

    增强处理(Advice):切入点处执行增强处理

    连接点(Joinpoint):程序执行过程中的点,如方法调用,异常抛出

    切入点(Pointcut):可以插入增强处理的连接点


    步骤:

    1. Beans.xml中配置,启动@AspectJ支持

    <context:component-scan base-package="com.jason.bookparadise.aspect">
        <context:include-filter type="annotation" expression="org.aspectj.lang.annotation.Aspect"/>
    </context:component-scan>
    <aop:aspectj-autoproxy></aop:aspectj-autoproxy>

    2. 配置切面类,使用@Aspect

    @Aspect
    public class TestAspect {
    
        @Before("execution(* com.jason.bookparadise.service.TestService.*(..))")
        public void testBefore(){
            System.out.println("Test AOP Before Run");
        }
    
    }

    3. 定义增强处理

    @Before,@After,@Around ("execution(* org.crazyit.app.service.impl.*.*(..)")

    @AfterReturning (returning="rvt", pointcut="execution(* org.crazyit.app.service.impl.*.*(..)")

    @AfterThrowing (throwing="ex", pointcut="* org.crazyit.app.service.impl.*.*.(..)")

    可以通过JoinPoint来获取参数

    4. 定义切入点

    可以通过切面类对切入点重命名

    @Aspect
    public class SystemArchitecture{
      @Pointcut("execution(* org.crazyit.app.service.impl.*.*(..))")
      public void myPoint(){}        
    }

    调用时

    pointcut="SystemArchitecture.myPointcut()"

    实际应用中可以把所有的切点集中写到一个类中。


    Log4j配置

    Log分为root log和自定义log两种,Root log log4j.rootLogger=stdout, logfile, errorlogfile, 自定义log edit_delete_log.

    关于Log文件的配置博文 http://www.cnblogs.com/ITtangtang/p/3926665.html 讲的很详细,可以参照。

    private static Log logger = LogFactory.getLog("edit_delete_log");
    logger.info(userid + " delete Book" + bookid + " " + rvt);
    # Configure logging for testing: optionally with log file
    log4j.rootLogger=stdout, logfile, errorlogfile
    
    log4j.appender.stdout=org.apache.log4j.ConsoleAppender
    log4j.appender.stdout.Append = true
    log4j.appender.stdout.Threshold = WARN
    log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
    log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - %m%n
    
    log4j.appender.logfile=org.apache.log4j.FileAppender
    log4j.appender.logfile.File=F:/BookParadise/Logs/root.log
    log4j.appender.logfile.Append = true
    log4j.appender.logfile.Threshold = WARN
    log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
    log4j.appender.logfile.layout.ConversionPattern=%d %p [%c] - %m%n
    
    log4j.appender.errorlogfile=org.apache.log4j.FileAppender
    log4j.appender.errorlogfile.File=F:/BookParadise/Logs/runerror.log
    log4j.appender.errorlogfile.Append = true
    log4j.appender.errorlogfile.Threshold = ERROR
    log4j.appender.errorlogfile.layout=org.apache.log4j.PatternLayout
    log4j.appender.errorlogfile.layout.ConversionPattern=%d %p [%c] - %m%n
    
    log4j.logger.edit_delete_log = DEBUG, loglevel
    log4j.appender.loglevel=org.apache.log4j.FileAppender
    log4j.appender.loglevel.File=F:/BookParadise/Logs/edit_delete.log
    log4j.appender.loglevel.layout=org.apache.log4j.PatternLayout
    log4j.appender.loglevel.layout.ConversionPattern=%d %p [%c] - %m%n
  • 相关阅读:
    HDU 1269 迷宫城堡
    HDU 4771 Stealing Harry Potter's Precious
    HDU 4772 Zhuge Liang's Password
    HDU 1690 Bus System
    HDU 2112 HDU Today
    HDU 1385 Minimum Transport Cost
    HDU 1596 find the safest road
    HDU 2680 Choose the best route
    HDU 2066 一个人的旅行
    AssetBundle管理机制(下)
  • 原文地址:https://www.cnblogs.com/xdlaoliu/p/6869540.html
Copyright © 2020-2023  润新知