apache log4j入门

本文介绍了Apache Log4j2的日志管理工具,详细解释了其日志分级、多样化存储方式及格式化功能,并提供了配置文件示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

学习一项新东西之前,我常常问自己:

这项技术是什么?

这项技术为我们做了什么?

为什么不用其他类似的技术?

如何使用这项技术?

于是我带着这些问题开始学习apache log4j

一,apache log4j是什么

The Apache Logging Services Project creates and maintains open-source software related to the logging of application behavior and released at no charge to the public.

这面这段话是apache日志服务官网首页的一段话,意思就是说用来记录程序的行为,开源免费。

而log4j是apache为Java提供的日志管理工具,目前可以用于生产的最新版本是Log4j 2.11.0,2.4及更高版本依赖于JDK7,

2.0-alpha1 to 2.3依赖于JDK6.

二,log4j为我们做了什么

2.1,日志分级

日志级别从低到高分为7个级别:

all:输出所有日志信息

debug:输出调试信息

info:输出提示信息

warn:表明可能有潜在错误的情形,输出警告信息

error :表明发生了错误事件,但不影响系统运行,输出错误信息

fatal:表明发生了严重的错误,可能导致系统停止运行

off:关闭日志输出

2.2,多样化的日志存储方式

可以输出到控制台、文件、Socket、邮件、数据库或者自定义Appender

如何配置不同的Appender,https://blog.youkuaiyun.com/qq_30788845/article/details/53083774

2.3,日志格式化

log4j,通常%加其他字符,代表以什么格式输出什么信息

三,log4j和common-logging、slf4j的关系

网上有很多关于这方面的博客,这里暂且不讨论这个问题。

四,为什么不用其他的日志工具

log4j很强大、很好用。

五,log4j.properties文件示例

下面是实际项目的log4j配置文件

###loggers###
#log4j.rootLogger=INFO,console,R
log4j.rootLogger=INFO,R
#sql
log4j.logger.com.think.base.jdbc=ERROR

###consoleAppender###
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=%d{HH:mm:ss,SSS}[%t][%.30c:%L][%p]-%m%n

###detailAppender###
log4j.appender.R=org.apache.log4j.DailyRollingFileAppender
log4j.appender.R.Threshold=ERROR
log4j.appender.R.Append=true
log4j.appender.R.File=/srv/www/app/demo/log/detail.log
log4j.appender.R.DatePattern='.'yyyy-MM-dd
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%d{HH:mm:ss,SSS}[%t][%.30c:%L][%p]-%m%n

log4j.rootLogger=INFO,R

表示将INFO级别的日志输出到目的地R,R在后面的配置中定义

log4j.logger.com.think.base.jdbc=ERROR

表示将com.think.base.jdbc这个类的日志级别设为Error

log4j.appender.R=org.apache.log4j.DailyRollingFileAppender

表示每天产生一个日志文件

log4j.appender.R.File=/srv/www/app/demo/log/detail.log

日志文件的路径

log4j.appender.R.DatePattern='.'yyyy-MM-dd

历史日志文件名的格式,比如说今天是2018年7月26号,那么昨天的日志文件名为detail.log.2018-07-25

log4j.appender.R.layout.ConversionPattern=%d{HH:mm:ss,SSS}[%t][%.30c:%L][%p]-%m%n

%d{HH:mm:ss,SSS}表示输出时间,例如:18:20:38,448

%t表示输出线程名,例如:Thread-310

%.30c表示输出类的路径和名称(超过30个个字符的部分不会输出),例如:ve.fxc.stkkh.bus.util.BusUtils

%L表示输出行号

%p表示输出日志级别

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值