相信很多程序猿朋友对log4j都很熟悉,log4j可以说是陪伴了绝大多数的朋友开启的编程。我不知道log4j之前是用什么,至少在我的生涯中,是log4j带我开启的日志时代。

log4j是Apache的一个开源项目,我们不去考究它的起源时间,但是据我了解,log4j 1已经不再更新了。

回顾log4j,曾给我们留下了多少的回忆,我记得早些年,那时候mybatis还是叫ibatis的时候,我为了配置ibatis控制台打印日志,纠结了多少个夜晚,最后配置出来时的那种喜悦感。废话不多说,下面我就以列举的方式来浅谈log4j和log4j 2的不同之处。

1、配置文件类型

log4j是通过一个.properties的文件作为主配置文件的,而现在的log4j 2则已经弃用了这种方式,采用的是.xml,.json或者.jsn这种方式来做,可能这也是技术发展的一个必然性,毕竟properties文件的可阅读性真的是有点差。

2、核心JAR包

log4j只需要引入一个jar包即可,

log4j

log4j

1.2.17

•1

•2

•3

•4

•5

•1

•2

•3

•4

•5

而log4j 2则是需要2个核心

org.apache.logging.log4j

log4j-core

2.5

org.apache.logging.log4j

log4j-api

2.5

•1

•2

•3

•4

•5

•6

•7

•8

•9

•10

•1

•2

•3

•4

•5

•6

•7

•8

•9

•10

大家发现没,log4j和log4j 2的包路径是不同的,Apache为了区分,包路径都更新了,这样大家甚至可以在一个项目中使用2个版本的日志输出哦!(不过我想你们没有那么调皮吧,嘿嘿)

3、文件渲染

log4j想要生效,我们需要在web.xml中进行配置,

org.springframework.web.util.Log4jConfigListener

log4jConfigLocation

classpath:config/log4j.properties

log4jRefreshInterval

60000

•1

•2

•3

•4

•5

•6

•7

•8

•9

•10

•1

•2

•3

•4

•5

•6

•7

•8

•9

•10

这段配置目的在于告诉工程去哪加载log4j的配置文件和定义一个扫描器,这样可以随心所欲的放置log4j配置文件。

log4j2就比较简单,以maven工程为例,我们只需要把log4j2.xml放到工程resource目录下就行了。大家记住一个细节点,是log4j2.xml,而不是log4j.xml,xml名字少个2都不行!!

•喜欢做学问的小伙伴,有兴趣可以去研究下,照我估计应该是在log4j2的包里面配置死了,而且大家可以尝试下怎么自定义log4j2.xml的位置。

4、Log调用

log4j和log4j2调用都是很简单的。

log4j:

import org.apache.log4j.Logger;

private final Logger LOGGER = Logger.getLogger(Test.class.getName());

•1

•2

•1

•2

log4j2:

import org.apache.logging.log4j.Level;

import org.apache.logging.log4j.LogManager;

import org.apache.logging.log4j.Logger;

private static Logger logger = LogManager.getLogger(Test.class.getName());

•1

•2

•3

•4

•1

•2

•3

•4

5、配置文件方式

最关键的最大的不同,那就是配置文件的区别了,大家具体使用的时候再根据你的情况进行配置就行了。

log4j2 例子如下:

filePattern="logs/$${date:yyyy-MM}/web-%d{MM-dd-yyyy}-%i.log.gz">

以上这篇老生常谈Log4j和Log4j2的区别(推荐)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

java log4j2_老生常谈Log4j和Log4j2的区别(推荐)相关推荐

  1. Java Log4j和Log4j2的区别

    Java Log4j和Log4j2的区别 一.核心JAR包 log4j核心包:log4j:log4j:[version] 而log4j2的核心包有2个: org.apache.logging.log4 ...

  2. Log4j和Log4j2的区别

    log4j是Apache的一个开源项目,log4j2和log4j是一个作者,只不过log4j2是重新架构的一款日志组件,他抛弃了之前log4j的不足,以及吸取了优秀的logback的设计重新推出的一款 ...

  3. java log4j logback jcl_知识总结-Java日志框架Log4j、Log4j2、logback、slf4j、简介

    功能简介 上一篇介绍了为什么打印日志.什么时候打印日志以及怎么打印日志.本篇介绍下在项目开发中常见的日志组件以及关系. 先看一张图 接口:将所有日志实现适配到了一起,用统一的接口调用. 实现:目前主流 ...

  4. Slf4j与log4j及log4j2的关系及使用方法

    Slf4j与log4j及log4j2的关系及使用方法 slf4j slf4j仅仅是一个为Java程序提供日志输出的统一接口,并不是一个具体的日志实现方案,就比如JDBC一样,只是一种规则而已,所以单独 ...

  5. java解析xml element_java解析XML Node与Element的区别(推荐)

    对Element和Node有困惑是因为对xml整个结构不了解,以下作为一个简要概述: 以下图为w3c.org网站的xml文档树图: 从上图可以看出,一个xml文档由元素节点,属性节点,文本节点构成,其 ...

  6. Log4j(四)——Log4j1与Log4j2的区别

    前言 几乎每个大型应用程序都包含自己的日志或跟踪API.为了符合这一规则,欧盟SEMPRER项目决定编写自己的跟踪API.这是在1996年初.经过无数次的增强.几个版本和大量的工作之后,API演变成了 ...

  7. java常用日志框架日志门面及实现 SLF4J 、Jboss-logging 、JCL、Log4j、Logback、Log4j2、JUL,springboot集成 log4j、log4j2

    java常用日志框架日志门面SLF4J .Jboss-logging .JCL.Log4j及实现 Logback.Log4j2.JUL,springboot集成 log4j.log4j2 .logba ...

  8. Java日志体系日志门面(Slf4j)日志实现(Log4j、Log4j2)详解

    1.背景 近日发生两次因日志使用不当导致的线上问题: 1.应用明明配置了info日志级别,却打印大量的debug日志,导致磁盘IO较高,很快就报磁盘空间不足告警 2.应用服务启动后报StackOver ...

  9. 一文讲尽门面日志slf4j和log4j、log4j2、logback依赖jar引用关系

    前言 之前都是使用SparkStreaming开发,最近打算学习一下Flink,就从官网下载了Flink 1.11,打算搞一个客户端,将程序提交在yarn上.因为Flink从1.7之后就不再提供Had ...

最新文章

  1. C#开发WPF/Silverlight动画及游戏系列教程(Game Tutorial):(十八) 完美精灵之八面玲珑(WPF Only)②...
  2. 【ok】李宏毅机器学习12: 对称矩阵
  3. Python函数中apply、map、applymap的区别
  4. indigo egit
  5. iOS自动打包并发布脚本
  6. 【数据结构与算法】之有关“跳跃游戏”的求解思路与示例算法
  7. systemd      kernel
  8. Linux 的 复制命令 【 cp 】 (copy)及其 (常用参数 -fp)
  9. Matlab Tricks(十九)—— 序列左右移的实现
  10. web前端开发技术期末考试_(完整word版)web前端开发技术试卷三
  11. OSChina 周六乱弹 —— 召唤养我的富婆
  12. Android 开启热点 适配8.0以上
  13. 不属于计算机完成科学特点的是,2019年网络教育统考《计算机应用基础》试卷版练习题2...
  14. Maven构建docker镜像并打包推送到远程私有仓库
  15. indexedDB存储
  16. 数字通信基本原理与设备
  17. uni-app H5 上传图片
  18. Java 课程设计--数据库管理系统
  19. 未来两周目标计划---C++ and Disassembly(不积跬步无以至千里,不积小流无以成江海)...
  20. 好几张图片合成一个PDF,不能错过的小技巧!

热门文章

  1. 详细介绍Deeper Text Understanding for IR with Contextual Neural Language Modeling
  2. 围棋协会盛赞柯洁展强者风范 完胜韩国新领军人
  3. 苹果A6处理器最新测试:1.3GHz
  4. 兼容主流浏览器的【表情插入】源码(转)
  5. watch中的immediate、handler和deep属性
  6. readdir不保证读取的文件顺序
  7. Linux su :user xxx does not exits
  8. ZZ:天下无贼经典台词IT版
  9. 周景世荣慢生活馆+重组自己的7个方法思维导图模板
  10. android wifi tcpip,Android无线调试:tcpip无线连接 | WiFi apk无线连接