log4j.xml打印日志信息(2)
log4j.xml文件
- <?
- xml version="1.0" encoding="UTF-8"?>
- <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
- <log4j:configuration xmlns:log4j='http://jakarta.apache.org/log4j/' >
- <appender name="myConsole" class="org.apache.log4j.ConsoleAppender">
- <layout class="org.apache.log4j.PatternLayout">
- <param name="ConversionPattern"
- value="[%d{dd HH:mm:ss,SSS\} %-5p] [%t] %c{2\} - %m%n" />
- </layout>
- <!--过滤器设置输出的级别-->
- <filter class="org.apache.log4j.varia.LevelRangeFilter">
- <param name="levelMin" value="debug" />
- <param name="levelMax" value="warn" />
- <param name="AcceptOnMatch" value="true" />
- </filter>
- </appender>
- <appender name="myFile" class="org.apache.log4j.RollingFileAppender">
- <param name="File" value="D:/output.log" /><!-- 设置日志输出文件名称 -->
- <!-- 设置是否在又一次启动服务时,在原有日志的基础加入新日志 -->
- <param name="Append" value="true" />
- <param name="MaxBackupIndex" value="10" />
- <layout class="org.apache.log4j.PatternLayout">
- <param name="ConversionPattern" value="%p (%c:%L)- %m%n" />
- </layout>
- </appender>
- <appender name="activexAppender" class="org.apache.log4j.DailyRollingFileAppender">
- <param name="File" value="E:/activex.log" />
- <param name="DatePattern" value="'.'yyyy-MM-dd'.log'" />
- <layout class="org.apache.log4j.PatternLayout">
- <param name="ConversionPattern"
- value="[%d{MMdd HH:mm:ss SSS\} %-5p] [%t] %c{3\} - %m%n" />
- </layout>
- </appender>
- <!-- 指定logger的设置,additivity指示是否遵循缺省的继承机制-->
- <logger name="com.util.TimerLogger" additivity="false">
- <priority value ="debug"/>
- <appender-ref ref="activexAppender" />
- </logger>
- <!-- 根logger的设置-->
- <root>
- <priority value ="debug"/>
- <appender-ref ref="myConsole"/>
- <appender-ref ref="myFile"/>
- <appender-ref ref="activexAppender"/>
- </root>
- </log4j:configuration>
web.xml中载入
- <context-param>
- <param-name>log4jConfigLocation</param-name>
- <param-value>classpath:log4j.xml</param-value>
- </context-param>
切面类
- package com.aop;
- import org.apache.log4j.Logger;
- import org.aspectj.lang.JoinPoint;
- import org.aspectj.lang.ProceedingJoinPoint;
- import com.service.imp.UserServiceImpl;
- public class MyAspect {
- //private static final Logger LOGGER=Logger.getLogger(MyAspect.class);
- //输出到指定文件
- private static final Logger LOGGER=Logger.getLogger("com.util.TimerLogger");
- public Object doAround(ProceedingJoinPoint pjp) throws Throwable {
- long time = System.currentTimeMillis();
- Object retVal = pjp.proceed();
- time = System.currentTimeMillis() - time;
- Object[] o=pjp.getArgs();
- for(int i=0;i<o.length;i++){
- LOGGER.info("第"+(i+1)+"输入參数 = "+o[i]);
- System.err.println("111111111111111");//測试是否进入切面
- }
- LOGGER.info("当前方法为 "
- + pjp.getTarget().getClass().getName() + "."
- + pjp.getSignature().getName()+" 运行时间为"+time+"ms");
- return retVal;
- }
- }
測试类
- package function;
- import java.io.IOException;
- import org.junit.Test;
- import com.model.User;
- import com.service.UserService;
- import com.util.BeanFactoryUtil;
- public class MyAspectTest {
- @Test
- public void aopTest() throws IOException{
- UserService userservice=(UserService)BeanFactoryUtil.getInstance().getBean("userService");
- User user=userservice.getUserByUid(3);
- System.err.println(user.getName());
- }
- }
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)的更多相关文章
- log4j.properties打印日志信息(1)
log4j.properties log4j.rootLogger=debug,stdout,logfile ### 把日志信息输出到控制台 ### log4j.appender.stdout=org ...
- 使用log4j2打印Log,log4j不能打印日志信息,log4j2不能打印日志信息,log4j和logj2,idea控制台信息乱码(文末)
说来惭愧,今天就写了个"hello world",了解了一下log4j的日志. 本来是想在控制台打印个log信息,也是遇到坎坷重重,开始也没去了解log4j就来使用,log4j配置 ...
- Mybatis框架基于映射文件和配置文件的方式,实现增删改查,可以打印日志信息
首先在lib下导入: 与打印日志信息有关的架包 log4j-1.2.16.jar mybatis架包:mybatis-3.1.1.jar 连接数据库的架包:mysql-connector-java-5 ...
- log4j.xml——java日志处理组件配置简介
(从一篇好文开始)log4j(一)——为什么要用log4j? 三:看完栗子后的感想 (1)很明显我们在编写代码的时候有各种需要打印日志的需求,比如:我们调试代码的时候:我们的应用出现了问题,我们分析. ...
- springboot添加log4j日志配置log4j.xml生成日志文件
第一步:添加pom文件依赖 <!-- log4j --> <dependency> <groupId>org.springframework.boot</gr ...
- [已解决] Python logging 重复打印日志信息
问题描述 问题代码如下: def get_logger(logger_name): """得到日志对象""" logger = loggin ...
- ibatis配置log4j输出sql日志信息
为了在开发过程更加直观,我们需要将ibatis日志打开以便观察ibatis运作的细节. ibatis采用Apache common_logging,并结合Apache log4j作为日志输出组件. 在 ...
- SLF4J log4j 不打印日志
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder". SLF4J: Defaulting to no ...
- linux执行python命令后没有反应,不打印日志信息
实际的python执行的软连接是路径是/opt/python2.7/bin/python,而设置的软连接错误如下: 修改该连接,是python指向/opt/python2.7/bin/python, ...
随机推荐
- Linux3.5内核以后的路由下一跳缓存
在Linux3.5版本号(包括)之前.存在一个路由cache.这个路由cache的初衷是美好的,可是现实往往是令人遗憾的.下面是陈列得出的两个问题:1.面临针对hash算法的ddos问题(描写叙述该问 ...
- DNS递归查询和迭代查询的差别
转载地址:http://blog.csdn.net/wuchuanpingstone/article/details/6720723 递归查询和迭代查询的差别 (1)递归查询 递归查询是一种DNS s ...
- 机器学习 数据量不足问题----1 做好特征工程 2 不要用太多的特征 3 做好交叉验证 使用线性svm
来自:https://www.zhihu.com/question/35649122 其实这里所说的数据量不足,可以换一种方式去理解:在维度高的情况下,数据相对少.举一个特例,比如只有一维,和1万个数 ...
- Redis常用的命令
常规命令查询地址: http://redisdoc.com/ 如下图:
- 无意中发现destoon5商城处理订单时的一些bug
最新的destoon5在商城的商品中加入了商品属性的功能,可以使用三个商品属性 而在代码中用如“49-3-0-0”来标记所选择的的商品及属性,其中第一个数字是商品的id,后三个表示的是商品对应的属性值 ...
- iOS性能优化未阅文章归档
https://www.aliyun.com/jiaocheng/349583.html https://www.2cto.com/kf/201706/648929.html 理解UIView的绘制 ...
- Unity 引用的玩家不受控制
原因是因为从Project拖过去的, 应该从Hierarchy拖过去.
- CDR X7正版优惠,3折来袭,好礼相送,行不行动?
意料之中的是,CorelDRAW系列软件在618期间成绩再次突破历史,成为新高.因为X7版本活动在6月15号的才上, 加之在此之前从没有过X7的活动优惠,势头之猛,可想而知,如此一来,官方预定的限量2 ...
- 细数ZBrush这些年的心路历程
ZBrush 的出现,带来了一场3D造型的革命.它完全颠覆了传统三维设计工具的工作模式,将3D空间绘图这种全新的设计理念呈现在广大设计师面前,强大的雕塑建模功能和颜色绘制功能释放了艺术家的灵感,让设计 ...
- CSS背景使用,引入、尺寸、平铺、定位、多重背景
<!DOCTYPE html><html> <head> <meta charset="UTF-8"> ...