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切面。

时间: 2024-11-11 01:14:04

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

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

log4j.properties log4j.rootLogger=debug,stdout,logfile ### 把日志信息输出到控制台 ### log4j.appender.stdout=org.apache.log4j.ConsoleAppender #log4j.appender.stdout.Target=System.err log4j.appender.stdout.layout=org.apache.log4j.SimpleLayout ### 把日志信息输出到文件:jbit.

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

说来惭愧,今天就写了个"hello world",了解了一下log4j的日志. 本来是想在控制台打印个log信息,也是遇到坎坷重重,开始也没去了解log4j就来使用,log4j配置文件开始用的log4j.properties,结果控制台一直打印ERROR StatusLogger No log4j2 configuration file found.也就是Log4j2配置文件没找到的意思. 我就把log4j.properties文件名改成log4j2.properties,结果不报错了

Log4j.xml的配置信息

源码 1 <log4j:configuration xmlns:log4j='http://jakarta.apache.org/log4j/'> 2 3 <appender name="STDOUT" class="org.apache.log4j.ConsoleAppender"> 4 <layout class="org.apache.log4j.PatternLayout"> 5 <param n

ibatis配置log4j输出sql日志信息

为了在开发过程更加直观,我们需要将ibatis日志打开以便观察ibatis运作的细节. ibatis采用Apache common_logging,并结合Apache log4j作为日志输出组件. 在CLASSPATH中新建log4j.properties配置文件,内容如下: log4j.rootLogger=DEBUG,stdout log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.layo

log4j 不打印日志

背景说明 不是web 应用,单独的java程序 报以下错误 log4j:WARN No appenders could be found for logger (xxxx).log4j:WARN Please initialize the log4j system properly.log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info. 解决方案 调用 getLogger 之前.先初始

log4j(七)——log4j.xml简单配置样例说明

一:测试环境与log4j(一)--为什么要使用log4j?一样,这里不再重述 二:老规矩,先来个栗子,然后再聊聊感受 (1)这里栗子有一点特别呀!给出了包名唉!想必有用,是的,配置文件中要特别说明一下的 package test.log4j.test8; import org.apache.log4j.LogManager; import org.apache.log4j.Logger; import org.apache.log4j.xml.DOMConfigurator; /** * Cre

log4j日志文件 log4j.xml log4j.properties配置

1,导入log4j  jar包; 2,配置log4j.xml或log4j.properties文件; ----------------------------------------------------------------------------------------------------------- <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE log4j:configuratio

如何关闭log4j中配置的spring或者hibernate的日志信息

通常在建立一个web项目的时候,我们通常需要为其配置日志,以便了解启动过程中发生了什么,如果启动过程中发生了错误,则可以很方便的查看错误的信息,但是在项目部署到服务器上时,打印日志信息,需要耗费大量的时间,启动速度会很慢, 那么如何关闭这些日志信息呢 只需要的lo4j.properties文件中配置如下两句话即可 log4j.logger.org.springframework=OFF log4j.logger.org.hibernate=OFF

log4j.xml配置文件

<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> <log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/"> <!-- 根节点的配置顺序: renderer appender pl