当前位置: 首页 > 工具软件 > M-LOG > 使用案例 >

java详解 ---log4j的两个版本

胡意致
2023-12-01

先来看看一些关于一些jar包的一些问题:
1.为什么要使用jar包?
官方提供的一些包功能之外,如果想拓展一些别的功能,你就可以借助引入一些别的第三方jar包用来扩展项目的功能.
2.如何引用第三方jar包?
①.先获取jar包(需要知道jar名 与 jar的版本获取jar包)
②.把jar包引入至项目
外部项目 内部项目 和 自定义library三种方法.
③.引入步骤:
(这里写的都是要点击的按钮名称)
1).项目 –> build path –>configure build path –>library
–>add ExternalJARs(外部) / add JARs(内部) / add library(自定义)
2).add ExternalJARs(外部) –> 通过绝对路径索引到所需的jar包,添加并引用
add JARs(内部) –> 将所需的jar包 复制至项目的lib 将所需jar包添加并应用
add library(自定义) –> user library –> 新建 –>add JARs
–>工作环境下查找对应的jar包并应用
现在正是开始说log4j.

使用log4j的优势:
1.可以有6中不同级别的信息打印方式
2.可以选择多种打印输出源 –> console(控制台)/file(文件)
3.打印时可以丰富打印信息

一.log4j 1.x

import org.apache.log4j.Logger;
首先给出jar包下载地址:jar包下载地址
具体使用方法:
1.导入log4j依赖包
2.创建log4j对象
3.使用对象方法
所需配置文件:log4j.properties
注意:配置文件具有编码问题;
配置文件需存放在工程目录src下
一个log4j - 1.2.16包;
一个commons-logging-1.1.1包
log4j.properties配置文件:

## 级别知识点讲解
## 八种级别:
##      高 ------------------- >低
##  OFF > FAFTA > ERROR > WARN > INFO > DEBUG > TRACE > ALL
##  关闭    致命    错误    警告    信息    测试     痕迹    全部

## 六种打印级别:FAFTA > ERROR > WRAN > 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.
## SimpleLayOut  ==>  INFO - log4j 1.x info level message.
## TTCCLayOut ==>  [main] INFO lesson.ls03.Log4j03- user message
log4j.appender.out.layout = org.apache.log4j.PatternLayout

## 设置特定logger的自身优先级(特定的优先级 <= rootLogger的优先级)
log4j.appender.out.Threshold = warn

## 是否立即打印
log4j.appender.source.ImmediateFlush = true

## 设置打印的target(out流 / err流)
log4j.appender.out.Target = System.out

## 格式化输出的Layout(ConversionPattern)
log4j.appender.out.layout.ConversionPattern = [%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

## 注意:非转义字符原样输出

二.log4j 2.x

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

getLogger() 参数:
不写参数 默认为当前类.class
写参数后 作为当前logger名

log4j 2.x 具体使用
1.导入log4j依赖包
2.创建log4j对象
3.使用对象方法

log4j 2.x 配置文件
1.采用 json / xml 格式文件进行配置
2.存在4种配置文件命名
高————–>低
log4j2-test.json(jsn) > log4j2-test.xml > log4j2.json(jsn) > log4j2.xml
3.配置文件存放在项目目录src下
log4j - api - 2.10.0包
log4j - core - 2.10.0包

<?xml version="1.0" encoding="UTF-8"?>
<!-- 
     xml文件:
     1.xml中以标签作为"盒子"存储数据
     2.xml中所有标签必须闭合
     3.xml中无任何预定义标签(系统标签) 只能自己定义标签
     4.xml中一个文件只能拥有一个根标签
     5.xml中标签可以拥有 属性 和 值 
 -->

<!-- 
    标签:被<>包裹,以字母开头.可以结合合法字符,且可以被解析的标记
 -->

<!-- 设置配置文件根标签:Configuration -->
<!-- status属性: 设置log4j2 自身 Log级别 -->
<!-- monitorInterval属性: 检查文件修改,设置刷新的时间间隔(ms) -->
<Configuration status = "error"  monitorInterval = "30" >
    <!-- 设置 properties: 辅助file输出源 -->
    <propreties>
        <!-- 
            内容log为项目根目录下文件名
            name属性值LOG_HOME为配置文件中 实体文件夹 log 的别名
        -->
        <property name = "LOG_HOME">log</property>
    </propreties>


    <!-- 设置输出源们 -->
    <Appenders>
        <!-- 设置控制台输出 -->
        <!--    
            name属性: appender的名字(自定义) 
            tsrget属性: 采用的target(out流 / err流)
        -->
        <Console name = "Console" target = "System_out">
        <!-- 设置输出信息的格式 -->
            <patternLayout pattern = "[%d{HH:mm:ss SSS}][%-5level] [%l] %msg%n" />
        </Console>

        <!-- 设置文件输出 -->
        <File name = "Normal" filename = "$[LOG_HOME]/log4j2.log" append = "true">
            <patternLayout pattern = "[%d{yyyy-MM-dd HH:mm:ss SSS}][%-5level] [%l] %msg%n" />
        </File>
    </Appenders>

    <!-- 设置打印者:采用默认root logger -->
    <Loggers>
        <Root level = "info">
            <!--为 logger 引用 appender  -->
            <AppenderRef ref = "Console" />
            <AppenderRef ref = "Normal"/>
        </Root>
    </Loggers>
</Configuration>
 类似资料: