log4j.xml文件

  1. <?
  2.  
  3. xml version="1.0" encoding="UTF-8"?>
  4. <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
  5.  
  6. <log4j:configuration xmlns:log4j='http://jakarta.apache.org/log4j/' >
  7.  
  8. <appender name="myConsole" class="org.apache.log4j.ConsoleAppender">
  9. <layout class="org.apache.log4j.PatternLayout">
  10. <param name="ConversionPattern"
  11. value="[%d{dd HH:mm:ss,SSS\} %-5p] [%t] %c{2\} - %m%n" />
  12. </layout>
  13. <!--过滤器设置输出的级别-->
  14. <filter class="org.apache.log4j.varia.LevelRangeFilter">
  15. <param name="levelMin" value="debug" />
  16. <param name="levelMax" value="warn" />
  17. <param name="AcceptOnMatch" value="true" />
  18. </filter>
  19. </appender>
  20.  
  21. <appender name="myFile" class="org.apache.log4j.RollingFileAppender">
  22. <param name="File" value="D:/output.log" /><!-- 设置日志输出文件名称 -->
  23. <!-- 设置是否在又一次启动服务时,在原有日志的基础加入新日志 -->
  24. <param name="Append" value="true" />
  25. <param name="MaxBackupIndex" value="10" />
  26. <layout class="org.apache.log4j.PatternLayout">
  27. <param name="ConversionPattern" value="%p (%c:%L)- %m%n" />
  28. </layout>
  29. </appender>
  30.  
  31. <appender name="activexAppender" class="org.apache.log4j.DailyRollingFileAppender">
  32. <param name="File" value="E:/activex.log" />
  33. <param name="DatePattern" value="'.'yyyy-MM-dd'.log'" />
  34. <layout class="org.apache.log4j.PatternLayout">
  35. <param name="ConversionPattern"
  36. value="[%d{MMdd HH:mm:ss SSS\} %-5p] [%t] %c{3\} - %m%n" />
  37. </layout>
  38. </appender>
  39.  
  40. <!-- 指定logger的设置,additivity指示是否遵循缺省的继承机制-->
  41. <logger name="com.util.TimerLogger" additivity="false">
  42. <priority value ="debug"/>
  43. <appender-ref ref="activexAppender" />
  44. </logger>
  45.  
  46. <!-- 根logger的设置-->
  47. <root>
  48. <priority value ="debug"/>
  49. <appender-ref ref="myConsole"/>
  50. <appender-ref ref="myFile"/>
  51. <appender-ref ref="activexAppender"/>
  52. </root>
  53. </log4j:configuration>

web.xml中载入

  1. <context-param>
  2. <param-name>log4jConfigLocation</param-name>
  3. <param-value>classpath:log4j.xml</param-value>
  4. </context-param>

切面类

  1. package com.aop;
  2.  
  3. import org.apache.log4j.Logger;
  4. import org.aspectj.lang.JoinPoint;
  5. import org.aspectj.lang.ProceedingJoinPoint;
  6. import com.service.imp.UserServiceImpl;
  7.  
  8. public class MyAspect {
  9. //private static final Logger LOGGER=Logger.getLogger(MyAspect.class);
  10. //输出到指定文件
  11. private static final Logger LOGGER=Logger.getLogger("com.util.TimerLogger");
  12.  
  13. public Object doAround(ProceedingJoinPoint pjp) throws Throwable {
  14.  
  15. long time = System.currentTimeMillis();
  16. Object retVal = pjp.proceed();
  17. time = System.currentTimeMillis() - time;
  18. Object[] o=pjp.getArgs();
  19. for(int i=0;i<o.length;i++){
  20. LOGGER.info("第"+(i+1)+"输入參数 = "+o[i]);
  21. System.err.println("111111111111111");//測试是否进入切面
  22. }
  23. LOGGER.info("当前方法为 "
  24. + pjp.getTarget().getClass().getName() + "."
  25. + pjp.getSignature().getName()+" 运行时间为"+time+"ms");
  26. return retVal;
  27. }
  28.  
  29. }

測试类

  1. package function;
  2.  
  3. import java.io.IOException;
  4.  
  5. import org.junit.Test;
  6. import com.model.User;
  7. import com.service.UserService;
  8. import com.util.BeanFactoryUtil;
  9.  
  10. public class MyAspectTest {
  11.  
  12. @Test
  13. public void aopTest() throws IOException{
  14.  
  15. UserService userservice=(UserService)BeanFactoryUtil.getInstance().getBean("userService");
  16. User user=userservice.getUserByUid(3);
  17. System.err.println(user.getName());
  18. }
  19. }

output.log文件

[26 10:50:39,024 INFO ] [main] aop.MyAspect - 第1输入參数 = 3
[26 10:50:39,025 INFO ] [main] aop.MyAspect - 当前方法为 com.service.imp.UserServiceImpl.getUserByUid  运行时间为277ms
张三

该日志文件记录了每一个方法的运行时间,利用AOP切面。

log4j.xml打印日志信息(2)的更多相关文章

  1. log4j.properties打印日志信息(1)

    log4j.properties log4j.rootLogger=debug,stdout,logfile ### 把日志信息输出到控制台 ### log4j.appender.stdout=org ...

  2. 使用log4j2打印Log,log4j不能打印日志信息,log4j2不能打印日志信息,log4j和logj2,idea控制台信息乱码(文末)

    说来惭愧,今天就写了个"hello world",了解了一下log4j的日志. 本来是想在控制台打印个log信息,也是遇到坎坷重重,开始也没去了解log4j就来使用,log4j配置 ...

  3. Mybatis框架基于映射文件和配置文件的方式,实现增删改查,可以打印日志信息

    首先在lib下导入: 与打印日志信息有关的架包 log4j-1.2.16.jar mybatis架包:mybatis-3.1.1.jar 连接数据库的架包:mysql-connector-java-5 ...

  4. log4j.xml——java日志处理组件配置简介

    (从一篇好文开始)log4j(一)——为什么要用log4j? 三:看完栗子后的感想 (1)很明显我们在编写代码的时候有各种需要打印日志的需求,比如:我们调试代码的时候:我们的应用出现了问题,我们分析. ...

  5. springboot添加log4j日志配置log4j.xml生成日志文件

    第一步:添加pom文件依赖 <!-- log4j --> <dependency> <groupId>org.springframework.boot</gr ...

  6. [已解决] Python logging 重复打印日志信息

    问题描述 问题代码如下: def get_logger(logger_name): """得到日志对象""" logger = loggin ...

  7. ibatis配置log4j输出sql日志信息

    为了在开发过程更加直观,我们需要将ibatis日志打开以便观察ibatis运作的细节. ibatis采用Apache common_logging,并结合Apache log4j作为日志输出组件. 在 ...

  8. SLF4J log4j 不打印日志

      SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder". SLF4J: Defaulting to no ...

  9. linux执行python命令后没有反应,不打印日志信息

    实际的python执行的软连接是路径是/opt/python2.7/bin/python,而设置的软连接错误如下: 修改该连接,是python指向/opt/python2.7/bin/python, ...

随机推荐

  1. Linux3.5内核以后的路由下一跳缓存

    在Linux3.5版本号(包括)之前.存在一个路由cache.这个路由cache的初衷是美好的,可是现实往往是令人遗憾的.下面是陈列得出的两个问题:1.面临针对hash算法的ddos问题(描写叙述该问 ...

  2. DNS递归查询和迭代查询的差别

    转载地址:http://blog.csdn.net/wuchuanpingstone/article/details/6720723 递归查询和迭代查询的差别 (1)递归查询 递归查询是一种DNS s ...

  3. 机器学习 数据量不足问题----1 做好特征工程 2 不要用太多的特征 3 做好交叉验证 使用线性svm

    来自:https://www.zhihu.com/question/35649122 其实这里所说的数据量不足,可以换一种方式去理解:在维度高的情况下,数据相对少.举一个特例,比如只有一维,和1万个数 ...

  4. Redis常用的命令

    常规命令查询地址: http://redisdoc.com/ 如下图:

  5. 无意中发现destoon5商城处理订单时的一些bug

    最新的destoon5在商城的商品中加入了商品属性的功能,可以使用三个商品属性 而在代码中用如“49-3-0-0”来标记所选择的的商品及属性,其中第一个数字是商品的id,后三个表示的是商品对应的属性值 ...

  6. iOS性能优化未阅文章归档

    https://www.aliyun.com/jiaocheng/349583.html https://www.2cto.com/kf/201706/648929.html 理解UIView的绘制 ...

  7. Unity 引用的玩家不受控制

    原因是因为从Project拖过去的, 应该从Hierarchy拖过去.

  8. CDR X7正版优惠,3折来袭,好礼相送,行不行动?

    意料之中的是,CorelDRAW系列软件在618期间成绩再次突破历史,成为新高.因为X7版本活动在6月15号的才上, 加之在此之前从没有过X7的活动优惠,势头之猛,可想而知,如此一来,官方预定的限量2 ...

  9. 细数ZBrush这些年的心路历程

    ZBrush 的出现,带来了一场3D造型的革命.它完全颠覆了传统三维设计工具的工作模式,将3D空间绘图这种全新的设计理念呈现在广大设计师面前,强大的雕塑建模功能和颜色绘制功能释放了艺术家的灵感,让设计 ...

  10. CSS背景使用,引入、尺寸、平铺、定位、多重背景

    <!DOCTYPE html><html>    <head>        <meta charset="UTF-8">      ...