我们使用jar在上一次文章已经说过了下面我们直接说 配置文件
那我们为什么要配置文件呢?
配置文件的优势
1.拥有六种不同级别的信息打印
2.可以选择多种打印输出源 (FATAL | ERROR | WARN | INFO | DEBUG | TRACE)
3.打印时可以打印日志中丰富的信息
在同文件同包下使用配置文件
pbulic class Denmo01{
public static void main (String[]args){
//用New一个新的类 没有配置文件 直接使用 不可以打印日志信息
// Logger logger = new getLogger();
//在类中直接调用 配置文件的文件名
Logger logger = Logger.getLogger(Denmo01.class);
logger.fatal("Denm01 要使用的jar名");
}
}
在同文件不同包下使用配置文件 同名类 (抽象类|接口) 注意:需在使用时明确包名
public class Log4 {
public static void main(String[] args) {
org.apache.logging.log4j. Logger logger2 = LogManager.getLogger(Log4j02.class);
logger2.error("log4j 2.x");
}
}
jar包 具体使用
1.导入jar依赖包
2.创建log4j对象
3.使用对象方法
FATAL > ERROR > WARN > INFO > DEBUG > TRACE
import org.apache.log4j.Logger;
所需配置文件:log4j . properties
注:配置文件 具有编码问题:配置文件 需存放在工程目录 src下.
public class Log4j03 {
private static final Logger LOG = Logger.getLogger(Log4j03.class);
public static void main(String[] args) {
LOG.fatal("log4j 1.x info level message");
LOG.error("log4j 1.x info level message");
LOG.warn ("log4j 1.x info level message");
LOG.info ("log4j 1.x info level message");
LOG.debug("log4j 1.x info level message");
LOG.trace("log4j 1.x info level message");
}
}
**先用txt格式的文本文档来配置一个文六中打印级别
FATAL > ERROR > WARN > INFO > DEBUG > TRACE
设置配置文件
配置文件名必须为log4j.properties
必须存放在项目目录src下
设置root logger 的级别 及 log者(名字可以自定义)
log4j.rootLogger = INFO,out
设置appender(输出源、目的地)
log4j.appender.out = org.apache.log4j.ConsoleAppender
设置layout(布局、格式)
PatternLayout ==> log4j 1.x info level message (灵活布局 user message )
SimpleLayout ==> INFO - log4j 1.x info level message
TTCCLayout ==> [main] INFO Lesson.Is03.Log4j03 - log4j 1.x info level message
log4j.appender.out.layout = org.apache.log4j.PatternLayout
设置特点Logger的自身优先级( 小于 等于 rootLogger的级别 )
log4j.appender.out.Threshold = warn
是否立即打印
log4j.appender.out.ImmediateFlush = true
设置打印的target( out流 | err流 )
log4j.appender.out.Target = System.out
格式化输出的layout(ConversionPattern)
log4j.appender.out.layout.ConversionPattern = [%d{yyyy-MM-dd HH:mm:SSS}] [%p] [%t] [%l] - %m%n
格式化语法
时间:%d{ yyyy-MM-dd HH:mm:SSS }
级别: %p
线程: %t
信息产生的详细位置:%l
打印信息:%m
换行:%n
所属类:%c
耗时:%r
注:非转义字符原样输出`
**用xml格式在配置一种文件**