Log4j 1.2.17 使用

Stella981
• 阅读 1265

首先下载Log4j有关的jar包,虽然现在 Log4j更新到了2.0,但是和以前的1.X版本完全不兼容,所以今天我们还是先来使用1.X的版本,等时间再久一点,2.0版本稳定并且使用量大了之后再升级

1.X版本最新的版本是1.2.17,但是现在Log4j的官网首页是只提供2.0的jar包下载,所以千万别被他迷惑了,虽然2.0的包下载下来也有一个1.2版本的包,但是那是2.0的,不是以前的1.2。

我们打开Log4j的历史版本页面,进行下载
地址:http://archive.apache.org/dist/logging/log4j/
你可以看到里面都是Log4j以前的版本,而其中1.X最新的版本是13年2月份更新的1.2.17版本。
我们直接下载:
jar(架包):http://archive.apache.org/dist/logging/log4j/1.2.17/log4j-1.2.17.jar
tar.gz(架包+源打包):http://archive.apache.org/dist/logging/log4j/1.2.17/log4j-1.2.17.tar.gz

下载完之后我们开始进行Log4j的初步使用

1.首先将jar包放入项目的lib库中
Log4j 1.2.17 使用
我的项目是IDEA的项目,所以lib在跟目录下,不过一般正常的javv web应用的lib都是web目录下的

2.将jar包放入之后,我们添加使用Log4j的配置文件
把配置文件放在classpath目录下,一般我们的正常情况都是都是放在src根目录下就可以了

#定义Log4j输出的日志级别
#TRACE < DEBUG < INFO < WARN < ERROR < FATAL
log4j.rootCategory=DEBUG,stdout

#  Log4j提供的appender有以下几种:
#  org.apache.log4j.ConsoleAppender(控制台)
#  org.apache.log4j.FileAppender(文件)
#  org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件)
#  org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生新文件)
#  org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)
log4j.appender.stdout=org.apache.log4j.ConsoleAppender

#  Log4j提供的layout有以下几种:
#  org.apache.log4j.HTMLLayout(以HTML表格形式布局),
#  org.apache.log4j.PatternLayout(可以灵活地指定布局模式),
#  org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串),
#  org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.threshold=DEBUG

#    %p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL
#    %r 输出自应用启动到输出该log信息耗费的毫秒数
#  %c 输出所属的类目,通常就是所在类的全名
#  %t 输出产生该日志事件的线程名
#  %n 输出一个回车换行符,Windows平台为“\r\n”,Unix平台为“\n”
#  %d 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyy MMM dd HH:mm:ss,SSS},输出类似: 2002年10月18日 22:10:28,921
#  %l 输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。举例:Testlog4.main(TestLog4.java:10)
#     %f 输出文件名 如Test_Log4J.java
#    [%c{1}就是将class名从右开始输出几个部分,输出的是,Test_Log4J.如果将1改为2,则输出为test.Test_Log4J.
log4j.appender.stdout.layout.ConversionPattern=[%d{yyy-MM-dd HH:mm:ss,SSS}]-[%p]-[MSG!:%m]-[%c\:%L]%n

解释一下上面的配置 ,虽然有注释,我定义stdout的log4j输出对象,他的输出级别是DEBUG,从上面的注释看到,DEBUG是大于TRACE级别,但是小于INFO级别,所以正常情况来说这个对象只会输出DEBUG或者DEBUG以上级别的信息,而TRACE级别的信息他会忽略掉,
然后我将他说的输出对象 设置 为ConsoleAppender 也就是直接输出到控制台
最后指定他的输出格式PatternLayout:[%d{yyy-MM-dd HH:mm:ss,SSS}]-[%p]-[MSG!:%m]-[%c\:%L]%n
所以正常情况输出的信息应该会是这样的

[2013-11-11 23:48:30,062]-[INFO]-[MSG!:测试]-[org.out.HelloOut:26]

时间-级别-输出信息-输出的类

3.有了上面的配置文件后,我们写一个测试类,测试一下是否配置成功,能够输出日志
代码如下:

package org.test;

import org.apache.log4j.Logger;

public class Log4jTest {
    private static final Logger log = Logger.getLogger(Log4jTest.class);

    public static void main(String[] args) {                   
        log.trace("TRACE:测试输出1");
        log.debug("DEBUG:测试输出2");
        log.info("INFO: Log4j 输出测试成功");
    }
}

4.运行上面的代码之后我们最终会出现下面这样的结果

[2013-11-12 00:19:16,562]-[DEBUG]-[MSG!:DEBUG:测试输出2]-[org.test.Log4jTest:18]
[2013-11-12 00:19:16,562]-[INFO]-[MSG!:INFO: Log4j 输出测试成功]-[org.test.Log4jTest:19]

Log4j 1.2.17 使用

我们发现测试1是没有输出的,那说明我们的配置成功了,只输出了Debug级别和Debug级别以上的日志,并且输出到了控制台

5.配置成功.

点赞
收藏
评论区
推荐文章
blmius blmius
2年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Karen110 Karen110
2年前
一篇文章带你了解JavaScript日期
日期对象允许您使用日期(年、月、日、小时、分钟、秒和毫秒)。一、JavaScript的日期格式一个JavaScript日期可以写为一个字符串:ThuFeb02201909:59:51GMT0800(中国标准时间)或者是一个数字:1486000791164写数字的日期,指定的毫秒数自1970年1月1日00:00:00到现在。1\.显示日期使用
Jacquelyn38 Jacquelyn38
2年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Karen110 Karen110
2年前
​一篇文章总结一下Python库中关于时间的常见操作
前言本次来总结一下关于Python时间的相关操作,有一个有趣的问题。如果你的业务用不到时间相关的操作,你的业务基本上会一直用不到。但是如果你的业务一旦用到了时间操作,你就会发现,淦,到处都是时间操作。。。所以思来想去,还是总结一下吧,本次会采用类型注解方式。time包importtime时间戳从1970年1月1日00:00:00标准时区诞生到现在
Stella981 Stella981
2年前
Log4j2 配置讲解(转)
IDEA开发交流群:1854410091\.Log4j2的导入    首先到http://logging.apache.org/log4j/2.x/download.html上下载最新的log4j2的jar包,然后再eclipse中加入l
Stella981 Stella981
2年前
Android中使用Log4j及配置说明
目前在进行Android开发时使用到了log4j,现在对其配置进行记录。1. androidlogginglog4j下载地址https://code.google.com/archive/p/androidlogginglog4j/2\.所依赖的apache的log4j库的下载地址http://logging.apache.org
Wesley13 Wesley13
2年前
log4j 使用和配置
1.引入log4j最新的jar包文件1.log4j1.2.17.jar 1.http://logging.apache.org/log4j/1.2/download.html(https://www.oschina.net/action/GoToLink?urlhttp%3A%2F%2Flogging.apa
Stella981 Stella981
2年前
Centos7 安装Jenkins (rpm 方式)
首先说明本教程基于jenkins2.183,但是其他版本基本差不多,主要说一下其中比较坑的几点,做一个总结。1.rpm包的下载从官网上下载rpm的速度简直让人不能忍受,所以千万不要去官网下载。推荐去:http://mirrors.jenkinsci.org/status.html(https://www.oschina.net/action
Easter79 Easter79
2年前
Twitter的分布式自增ID算法snowflake (Java版)
概述分布式系统中,有一些需要使用全局唯一ID的场景,这种时候为了防止ID冲突可以使用36位的UUID,但是UUID有一些缺点,首先他相对比较长,另外UUID一般是无序的。有些时候我们希望能使用一种简单一些的ID,并且希望ID能够按照时间有序生成。而twitter的snowflake解决了这种需求,最初Twitter把存储系统从MySQL迁移
Wesley13 Wesley13
2年前
Java日志体系(六)log4j2
1.1简介            !(https://oscimg.oschina.net/oscnet/495f965815e196a8e347514c4408c5ca35d.png)log4j2,一个日志的实现框架,是log4j的升级版本,于2014年7月正式亮相。与第一代log4j不同,log4j2完全重写了log4j的日志实现,