
package ptu;
import org.apache.log4j.Logger;
public class LogTest {
/**
* @param args
*/
public static void main(String[] args) {
// TODO 自动生成方法存根
Logger logger=Logger.getLogger(ptu.LogTest.class.getName());
try {
logger.debug("SFtrS");
logger.error("SFrtrtD");
} catch (RuntimeException e) {
// TODO 自动生成 catch 块
}
}
}
配置log4j.properties属性的文件的代码如下:
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-mm-dd HH:mm:ss}%m%n
log4j.appender.file=org.apache.log4j.FileAppender
log4j.appender.file.File=f:/accp.log
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy-mm-dd HH:mm:ss}%m%n
log4j.rootLogger=debug,stdout,file
1.请问上面的Logger logger=Logger.getLogger(ptu.LogTest.class.getName());我看书理解为是获得一个日志记录器的对象,还有在Logger类的调用getLogger()方法;getLogger()方法里的名称是自己获得新对象 logger的名称,可是为什么帮助文档要说getLogger()里的name要类名呢?我把它换成随便一个名称(比如name="fdfdf")也可以进行日志的写入和控制台的输出呀!我真的是搞不懂呀,请问有谁能帮助我下吗,拜托了,
2.当运行到logger.debug("SFtrS");
logger.error("SFrtrtD");
才会调用配置log4j.properties属性的文件的代码吗?
1.Logger.getLogger(ptu.LogTest.class.getName());
都可以的,其实你去看看log4j源码汪碧就知道,getLogger方法可以传入一个对象,或者一个String字符串 都是可行的.所得到的叫这个名称的logger实例;
随便传个参数,则会产弯陵迟生个新的logger实例而已.
不清楚你可以看看:
http://blog.163.com/michero@126/blog/static/2825829320088392847480/
2.
是的埋李