log4j

原创
2015/04/03 17:24
阅读数 23

Logger输出日志
Appender 日志输出目的地
Layout日志的格式
一个Logger有多个Appender,一个日志可以输出到多个地方
Layout常用的:SimpleLayout,输出到文件->PatternLayout

log4j里Logger的实现类:
public class Logger{
  public static Logger getRootLogger();
  public static Logger getLogger(String name);
  public void debug(Object message);
  public void info(Object message);
  public void warm(Object message);
  public void error(Object message);
  public void fatal(Object message);
 
  public void log(Priority p,Object message);
        
}
Logger干嘛的应该很清晰了。

Logger和Append可以一对多,怎么体现?
写在配置文件里:

log4j.logger.myLogger=warm,file,console  //哪个Logger,输出级别,输出方式

log4j.appender.file=org.apache.log4j.RollingFileAppender //对应上边的file
log4j.appender.file.File=log.txt

log4j.appender.console=org.apache.log4j.ConsoleAppender //对应上边的console

Logger依赖Appender


Layout常用的有:
org.apache.log4j.HTMLLayout,
自定义的org.apache.log4j.PatternLayout,
包括日志信息级别和信息的SimpleLayout
包括日志时间,线程,类别等信息的TTCCLayout
log4j.appender.console.layout=org.apache.log4j.SimpleLayout
PatternLayout里的符号表示网上去搜
%c Class %m%n Message %p priority优先级别 %t Thread

日志是继承关系,rootLogger是根,.后边的继承前面的
log4j.apache.helloLogger=WARN
log4j.apache.helloLogger.subLogger=,file
如果子Logger没定义日志级别就会继承父类Logger的日志级别,定义了则不继承
子类Logger会继承父类Logger的所有Appender,除非把子类Logger的additivity属性设置为false.


Logger.getLogger("")用户获取自定义Logger

使用log4j:
1.获取日志记录器
2.读取配置文件
三种方法读取,BasicConfigurator,configure() 放在src下默认执行的读取这个。
PropertyConfigurator.configure(String configFileName) 读java属性文件形式的自定义日志的
DOMConfigurator.configure(String fileName)读xml形式的自定义配置文件
3.输出

如果是自定义配置文件,加载的时候写在一个Servlet的init里就好了

自定义Logger的时候一般写法log4j.logger.myLogger=info,可省略为myLogger=info,
展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部