package com.v512.log4j;
import org.apache.log4j.Logger;
public class HelloLog4J {
// 构造记录器,形参是记录器所在的类,表示要在该类做日志
private static Logger logger = Logger.getLogger(HelloLog4J.class);
/**
* @param args
*/
public static void main(String[] args) {
getMessage();
}
private static void getMessage() {
// 记录下各种级别的信息,这些信息放在哪儿,以哪种方式存放,在log4j.properties文件中配置.
logger.debug("This is debug message.");
logger.info("This is a info message.");
logger.warn("This is a warn message.");
logger.error("This is a error message.");
}
}
package com.toogen.log4j;
import org.apache.log4j.Logger;
public class HelloLog4JToogen {
// 构造记录器,形参是记录器所在的类,表示要在该类做日志
private static Logger logger = Logger.getLogger(HelloLog4JToogen.class);
/**
* @param args
*/
public static void main(String[] args) {
getMessage();
}
private static void getMessage() {
// 记录下各种级别的信息,这些信息放在哪儿,以哪种方式存放,在log4j.properties文件中配置.
logger.debug("This is debug message.");
logger.info("This is a info message.");
logger.warn("This is a warn message.");
logger.error("This is a error message.");
}
}
log4j.rootLogger=info,stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyyMMdd HH:mm:ss} %p %l [%t] %m%n
log4j.logger.com.toogen.log4j=debug,file
log4j.appender.file=org.apache.log4j.FileAppender
log4j.appender.file.File=Message.log
log4j.appender.file.layout=org.apache.log4j.TTCCLayout
执行com.v512.log4j.HelloLog4J时,控制台上的消息是 20120727 15:19:46 INFO com.v512.log4j.HelloLog4J.getMessage(HelloLog4J.java:18) [main] This is a info message. 20120727 15:19:46 WARN com.v512.log4j.HelloLog4J.getMessage(HelloLog4J.java:19) [main] This is a warn message. 20120727 15:19:46 ERROR com.v512.log4j.HelloLog4J.getMessage(HelloLog4J.java:20) [main] This is a error message. 执行com.toogen.log4j.HelloLog4JToogen时,控制台上的消息是 20120727 15:20:39 DEBUG com.toogen.log4j.HelloLog4JToogen.getMessage(HelloLog4JToogen.java:17) [main] This is debug message. 20120727 15:20:39 INFO com.toogen.log4j.HelloLog4JToogen.getMessage(HelloLog4JToogen.java:18) [main] This is a info message. 20120727 15:20:39 WARN com.toogen.log4j.HelloLog4JToogen.getMessage(HelloLog4JToogen.java:19) [main] This is a warn message. 20120727 15:20:39 ERROR com.toogen.log4j.HelloLog4JToogen.getMessage(HelloLog4JToogen.java:20) [main] This is a error message. 文件Message.log(工程目录下)是 [main] DEBUG com.toogen.log4j.HelloLog4JToogen - This is debug message. [main] INFO com.toogen.log4j.HelloLog4JToogen - This is a info message. [main] WARN com.toogen.log4j.HelloLog4JToogen - This is a warn message. [main] ERROR com.toogen.log4j.HelloLog4JToogen - This is a error message. 总结:log4j.rootLogger是对所有有日志功能的类都是有效的,即是某个包的类已经特别指定了Appender,log4j.rootLogger 对他们还是有效的,只不过这些类有几种Appender罢了,但是,注意,级别已经不再受log4j.rootLogger控制了,而是由特别指定 的Appender控制了.log4j.logger.com.toogen.log4j=debug,file此配置对于com.toogen.log4j的子包也是有效的,比如
com.toogen.log4j.test