log4j的使用范围
Posted 运维社区
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了log4j的使用范围相关的知识,希望对你有一定的参考价值。
1.什么是log4j?
Log4j是Apache的一个开源项目,通过使用Log4j,我们可以控制日志信息输送的目的地。
2. 支持发送的目标
控制台、文件、kafka、redis等
3.特点
支持自定义名称
支持同时配置多个日志模块
支持自定义日志格式
支持日志切分,按文件大小或者按日期切分。
支持两种模式配置:properties和xml格式
常用的就是控制台输出和文件输出两种
log4j配置是独立于代码之外的,如需修改日志参数不用改动代码,只需要修改log4j配置即可。
支持多种log 等级:等级可分为OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL,如果配置OFF则不打出任何信息,如果配置为INFO这样只显示INFO、WARN、ERROR的log信息
4.支持使用的语言
JAVA
C
C++
.Net
PL/SQL
5.将log4j.jar包放到项目的lib目录下
如果使用maven项目,需要添加依赖。
<!-- 添加log4j依赖 -->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
配置log4j文件
vim log4j.properties
### set log levels - for more verbose logging change 'info' to 'debug' ###
#设置日志级别info,开启控制台打印,文件打印两种方式
log4j.rootLogger=info, stdout, file
### log messages to stdout ###
log4j.appender.stdout=org.apache.log4j.ConsoleAppender #开启控制台打印
log4j.appender.stdout.Target=System.out #target属性,把日志信息写到控制台,其效果等同于直接把信息打印到System.out上了
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout #使用灵活的输出方式,输出方式支持多种
log4j.appender.stdout.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} [%c]-[%p] %m%n #自定义输出格式
#以下是将日志输出到文件
log4j.appender.file=org.apache.log4j.DailyRollingFileAppender
log4j.appender.file.Append=true
log4j.appender.file.Threshold=INFO
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n
log4j.logger.com.spat.core=ERROR
log4j.logger.com=INFO
6.参数
%m 输出代码中指定的消息;
%M 输出打印该条日志的方法名;
%p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL;
%r 输出自应用启动到输出该log信息耗费的毫秒数;
%c 输出所属的类目,通常就是所在类的全名;
%t 输出产生该日志事件的线程名;
%n 输出一个回车换行符,Windows平台为"rn”,Unix平台为"n”;
%d 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyyy-MM-dd HH:mm:ss,SSS},输出类似:2002-10-18 22:10:28,921;
%l 输出日志事件的发生位置,及在代码中的行数;
百度百科:https://baike.baidu.com/item/log4j/480673?fr=aladdin
官网参考:http://logging.apache.org/log4j/1.2/faq.html#a1.2
将日志写到kafka参考:https://www.cnblogs.com/dreammyle/p/6598935.html
将日志写到redis参考:https://gitee.com/jun-miss/log4j-redis-appender
以上是关于log4j的使用范围的主要内容,如果未能解决你的问题,请参考以下文章
Log4j反序列化远程代码执行漏洞(CVE-2019-17571)
片段(Java) | 机试题+算法思路+考点+代码解析 2023