JAVA log4j 1.x 和 2.x

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_40990836/article/details/78916746

1.为什么要使用jar包
因为官方提供的功能之余,想拓展项目功能,可以引入第三方jar完成
2.如何来获取jar包
1.获取jar包 明确jar包名 和 版本号
2.引入jar包
i)外部链接
ii)内部链接
iii)自定义library

1.项目 - > buildpath - > Configure Build Path
2.libraries - > AddJars External jars || Addjars || AddLibrary
3.
Add External jars: 通过绝对路径索引到所需jar 包,添加并应用
AddJars : 将所需jar包赋值至项目lib文件夹中,直接将所需jar包添加.
Add Library:user libraries - > Add Jars - > 工作环境下查找对应jar

使用log4j的优势
1.拥有6种不同级别的打印方式:fatal , error , warn , info ,debug , trace
2.可以选择多种输出源(Console | file)
3.打印时可以丰富打印信息

import org.apache.log4j.Logger;
import org.apache.logging.log4j.LogManager;

public class Log4j02{
    public static void main(String[] args){
        Logger logger = Logger.getLogger(Log4j02.class);
        logger.fatal("log4h 1.x");
        org.apache.logging.log4j.Logger = LogManager.getLogger(Log4j02.class);
        logger.fatal("log4j 2.x")
    }
}

log4j 1.x 具体使用
1 . 导入log4j 依赖包
2 . 创建log4j 对象
3 . 使用对象方法
注意: 所需配置文件:log4j.properties
配置文件 具有编码问题, 配置文件需要放在src工程目录下

级别知识点讲解

八种级别(级别高低由左到右逐渐降低)
OFF > FATAL > ERROR > WARN > INFO >DEBUG > TRACE > ALL
关闭 致命 错误 警告 信息 测试 痕迹 全部
六种打印级别
FATAL > ERROR > WARN > INFO > DEBUG > TRACE

设置配置文件
文件名必须为log4j.properies
必须存放在项目src下

设置root logger 的级别 及 log 者(名字 可以 自定义 out)
log4j.rootLogger = info,out
设置appender(输出源,目的地)
log4j.appender.out = org.apache.log4j.ConsoleAppender
设置layout (布局 格式)
log4j.appender.out.layout = org.apache.log4j.PatternLayout
设置特定logger 的 自身优先级(小于等于 rootLogger的级别)
log4j.appender.out.Threshold = error
是否立即打印,true 为 立即打印, false为延时打印
log4j.appender.source.ImmediateFlush = true
设置打印的target (out | err) 设置打印的方式为System.out 或者 System.err
log4j.appender.out.Target = System.err
格式化输出的layout(CanversionPattern)
log4j.appender.out.layout.CAnversionPattern = [%d{yyyy-MM-dd HH:mm:ss:SSS}][%p][%t][%l]%m%n
格式化 语法
时间:%d{yyyy-MM-dd HH:mm:ss:SSS}
级别:%p
线程:%t
信息产生的详细位置:%l
打印信息:%m
换行:%n
所属类:%c
耗时:%r
注意: 非转义字符原样输出

// 2.X 版本中 Logger 是个接口,LogManager 是个类
log4j2 配置文件
1 . 采用json | xml 格式文件进行配置
2 . 存在4中配置文件命名(优先级由左到右 依次降低)
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(“log4j 1.x fatal level message”);
LOG.error(“log4j 1.x error level message”);
LOG.warn(“log4j 1.x warn level message”);
LOG.info(“log4j 1.x info level message”);
LOG.debug(“log4j 1.x debug level message”);
LOG.trace(“log4j 1.x trace level message”);
}
}
xml 文件
1.xml中以标签作为”盒子”存储
2.xml中的所有标签必须闭合
3.xml中无任何预定义标签(系统标签),只有自定义标签
4.xml中一个文件只能拥有一个根标签
5.xml中标签可以拥有属性 和 值
标签:被<>包裹,以字母开头,可以结合合法字符,且可以被解析的标记
设置配置文件跟标签:Configuration
status 属性:设置log4j2自身log 级别
monitorInterval 属性 检查文件修改,设置刷新的时间间隔

<Configuration status = "error">
设置输出源
<Appenders>
设置控制台输出
name 属性 : appender 的 名字 (自定义)
target属性: 采用的target (out | err)
<Console name = "Console" target = "System_err">
设置输出信息的格式
<PatternLayout pattern = "[%d{yyyy-MM-dd HH:mm:ss SSS}][%-5level][%l] - %msg%n" />
</Console>
设置文件输出 file
<File name = "Normal" fileName = "log4j.log">
<PatternLayout pattern = "[%d{yyyy-MM-dd HH:mm:ss SSS}][%-5level][%l] - %msg%n" />
</Appenders>
设置打印者:采用默认rootlogger
<Loggers>
<Root level = "info">
<AppenderRef ref = "Console" />
<AppenderRef ref = "Normal" />
</Root>
</Loggers>
</ Configuration>

猜你喜欢

转载自blog.csdn.net/qq_40990836/article/details/78916746