zoukankan      html  css  js  c++  java
  • 通过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
  • 相关阅读:
    第05篇:C#星夜拾遗之使用数据库 拓荒者
    第02篇:C#星夜拾遗之Windows窗体 拓荒者
    移动“我的文档” 2010年5月22日学习笔记(1) 拓荒者
    为Windows Live Writer写一个简单的插件 拓荒者
    [转] 关于VisualC++的ATL、MFC、CLR对比 拓荒者
    如何在Windows 2003 中使用Windows Live Writer? 2010年5月21日学习笔记(1) 拓荒者
    第01篇:C#星夜拾遗之如何开始C#学习 拓荒者
    JavaScript Mobile开发框架汇总
    CSS调用远程字体
    locale的详细解释
  • 原文地址:https://www.cnblogs.com/xdlaoliu/p/6869540.html
Copyright © 2011-2022 走看看