1.为什么要使用第三方jar包?
在官方提供的功能之余,想拓展项目功能,可以借助引用第三方jar包来完成
2.如何引用第三方jar包
1.获取jar包(明确jar包与版本,获取其jar包)
2.jar包引入至项目中
外部链接
内部链接
自定义library
步骤:
1.项目 -> build path -> Configure build path
2.library -> Add External Jars | Add Jars | Add Library
Add External Jars : 通过绝对路径索引到所需jar包 添加并应用
Add Jars : 将所需jar包复制到jar包文件夹中 直接将所需jar包添加
Add Library : user library -> new -> Add Jars -> 工作环境下查找
3.使用log4j的优势
1.拥有6种不同级别的信息打印方式
debug info warn error fatal
2.可以选择多种打印输出源(eg: console | file)
3.打印时可以丰富打印信息
4.配置日志文件
有1.x 2.x 两个版本
先设置1.x版本的配置文件
// 设置 root logger的级别 和 log者(名字可以自定义)
log4j.rootlogger = info , out
// 设置appender输出源 (控制台 目的地)
log4j.appender.out = org.apache.log4j.ConsoleAppender
// 设置layout 布局 格式
// 灵活的格局
// PatternLayout 灵活布局
// SimpleLayout 简单表格布局
// TTCCLayout
log4j.appender.out.layout = org.apache.log4j.PatternLayout
// 设定特定Logger的自身优先级()_
log4j.appender.out.Threshold = error
// 是否立即打印
log4j.apaender.out.ImmediateFlush = true
// 输出流target (out流 | err流)
log4j.appender.out.Target = System.out
// 格式化输出layout(ConversionPattern)
log4j.appender.out.conversionPattern = [%d{yyyy-MM-dd HH:mm:ss:SSS} [%p]]
格式化语句
时间: %d{yyyy-MM-dd HH:mm:ss:SSSS}
级别: %p
线程: %t
信息产生的详细位置: %l
打印信息: %m
换行: %n
所属类: %c
耗时: %r
注: 非转义字符原样输出
实现代码:
log4j 1.x 具体使用
* 1. 导入log4j依赖包
* 2. 创建log4j对象
* 3. 使用对象方法
*
* 所需配置文件: log4j.properties
* 注意: 配置文件具有编码问题; 配置文件需要存放在工程目录src下
*/
import org.apache.log4j.Logger;
public class Log4j03 {
private static final Logger LOG = Logger.getLogger(Log4j03.class);
public static void main(String[] args) {
LOG.fatal("log4j 1.x fatal level message.");
LOG.error("log4j 1.x error level message.");
}
}
结果:
[2018-01-02 19:01:12:307] [FATAL] [main] [lesson.ls03.Log4j03.main(Log4j03.java:17)]- log4j 1.x fatal level message.
[2018-01-02 19:01:12:310] [ERROR] [main] [lesson.ls03.Log4j03.main(Log4j03.java:18)]- log4j 1.x error level message.
2.x 版本配置文件
xml文件 基本语法
1.xml中以标签作为"盒子"存储数据
2.xml中所有标签必须闭合
3.xml中无任何预定义标签(系统标签),只有自定义标签
4.xml中一个文件只能拥有一个跟标签
5.xml中标签可以拥有属性和值
标签只能被<>包裹,以字母开头,可以结合合法字符,
在xml中
先写配置文件跟标签Configuration
<!-- 设置配置文件跟标签: Configuration -->
<Configuration>
<!-- 设置输出源们 -->
<Appenders>
<!-- 设置控制台输出 -->
<!-- name属性:appender的名字(自定义) -->
<!-- target属性: 采用的target(out流 | err流) -->
<Console name="Console" target="System_out">
<!-- 设置输出信息的格式 -->
<PatternLayout pattern="[%d{HH:ss:SSSS}][%-5level] [%t] [%l]%msg%n" />
</Console>
<!-- 设置文件输出 -->
<file name = "Normal" fileName = "$[LOG_HOME]/log4j.log " append = "true">
<PatternLayout pattern="[%d{yyyy-MM-dd HH:ss:SSSS}][%-5level] [%t] [%l]%msg%n" />
</file>
</Appenders>
<!-- 设置打印者: 采用默认root logger -->
<loggers>
<Root level = "info">
<!-- 为logger引用 appender -->
<AppenderRef ref="Console" />
<AppenderRef ref="Normal" />
</Root>
</loggers>
</Configuration>
实现代码:
/*
* log4j 2.x 具体使用
* 1. 导入log4j依赖包
* 2. 创建log4j对象
* 3. 使用对象方法
*
* log4j2 配置文件
* 1. 采用 json | xml 格式文件运行进行配置
* 2. 存在四种配置文件命名(优先级从左至右依次降低)
* log4j2-test.json(jsn) > log4j2-test.xml > log4j2.json(jsn) > log4j2.xml
* 3. 配置文件存放在项目根目录src下
*/
import org.apache.logging.log4j.Logger;
import org.apache.logging.log4j.LogManager;
public class Log4j04 {
// getLogger() 参数
// 默认为 当前类.class
// 设置后 作为 当前Logger名
private static final Logger LOG = LogManager.getLogger();
public static void main(String[] args) {
LOG.fatal("log4j2 fatal level ");
LOG.error("log4j2 error level ");
}
}
结果:
[19:55:0238][FATAL] [main] [lesson.ls04.Log4j04.main(Log4j04.java:23)]log4j2 fatal level
[19:55:0246][ERROR] [main] [lesson.ls04.Log4j04.main(Log4j04.java:24)]log4j2 error level