千家信息网

log4j如何配置和使用

发表于:2026-11-04 作者:千家信息网编辑
千家信息网最后更新 2026年11月04日,这篇文章主要介绍了log4j如何配置和使用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。log4j有三个主要的组件,分别是:*Logg
千家信息网最后更新 2026年11月04日log4j如何配置和使用

这篇文章主要介绍了log4j如何配置和使用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

log4j有三个主要的组件,分别是:

*Logger(记录器):负责按照设定的优先级过滤日志信息,然后转发到存放器
*Appender(存放器):负责接收并处理记录器转发来的日志信息,通常的处理是输出到屏幕或者存储到磁盘文件

*Layout(布局器):负责格式化日志信息

上述三者之间的关系:
一个Logger可以挂接多个Appender(日志信息同时转发到多个设备)
一个Appender指定一个Layout进行格式化操作

一、定义配置文件log4j.properties
1.
log4j.记录器名称=[ 级别 ] , 存放器名称1, 存放器名称2, …
级别优先级由高到低依次是:OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL
log4j建议只使用四个级别,优先级从高到低分别是:ERROR、WARN、INFO、DEBUG
只有优先级高于或等于设定级别的日志信息被转发,例如,如果定义为INFO,那么在程序中级别为DEBUG的日志信息都不会输出。
log4j.rootLogger是所有记录器的父对象(原名rootCategory已废弃),可用于设定所有记录器的缺省优先级
记录器可以继承,如:log4j.myLogger.childLogger=,file
记录器按名字获得,第一次访问时自动创建(总是存在)

如果约定每个类都只向其同名记录器输出日志,则在配置文件中可以针对每一个特定类进行日志配置

2.
log4j.appender.存放器名称=存放器类名
目前,log4j实现的存放器类有以下几种:
org.apache.log4j.ConsoleAppender(控制台)
org.apache.log4j.FileAppender(文件)
org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件)
org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件)
org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)
3.
log4j.appender.存放器名称.layout=布局器类名
目前,log4j实现的布局器类有以下几种:
org.apache.log4j.PatternLayout(log4j的标准布局器,可以灵活地指定布局模式)
org.apache.log4j.HTMLLayout(以HTML表格形式布局)
org.apache.log4j.SimpleLayout(包含级别和日志信息的简单字符串)
org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)
4.
设定布局器选项(主要是设定转换格式)
log4j.appender.存放器名称.layout.选项名=值

通常采用log4j的标准布局器:
log4j.appender.存放器名称.layout=org.apache.log4j.PatternLayout
log4j.appender.存放器名称.layout.ConversionPattern=格式化参数

log4j采用类似C语言中printf函数的格式化参数格式化日志信息,参数如下:
%m 输出代码中指定的信息
%p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL
%r 输出自布局器构造到该时间点所经过的毫秒数
%c 输出所属的类目,通常就是所在类的全名
%t 输出产生该日志事件的线程名
%n 输出一个回车换行符,Windows平台为"/r/n",Unix平台为"/n"
%d 输出该时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式。如:%d{yyy MMM dd HH:mm:ss,SSS},输出类

似:08 十二月 03 12:04:52,531
%l 输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。如:Testlog4.main(TestLog4.java:10)
%F 输出文件名
%L 输出行号

二、在代码中调用log4j
1.将log4j的jar包(log4j-1.2.15.jar)导入到工程中。
2.写配置文件log4j.properties,放在src目录下,系统运行时自动拷贝到bin目录下。

1.       2. import  org.apache.log4j.Logger;     3.    ...     4.private  static  final  Logger log = Logger.getLogger(类名.class );     5. ...     6. log.debug( Object message );     7. log.info( Object message );     8. log.warn( Object message );     9. log.error( Object message );    10.       11.    import org.apache.log4j.Logger;  ...  private static final Logger log = Logger.getLogger(类名.class);  ...  log.debug( Object message );  log.info( Object message );  log.warn( Object message );  log.error( Object message );

三、log4j.properties的例子

  1.< span  style ="font-family: courier new,courier;" >      2.# Set root logger priority to INFO and its only appender to CONSOLE.     3.log4j.rootLogger =INFO , CONSOLE     4.log4j.rootLogger =INFO , CONSOLE, LOGFILE     5.     6.# Set the enterprise logger category to FATAL and its only appender to CONSOLE.     7.log4j.logger.org.apache.axis.enterprise =FATAL , CONSOLE     8.       9.# CONSOLE is set to be a ConsoleAppender using a PatternLayout.    10.log4j.appender.CONSOLE =org .apache.log4j.ConsoleAppender    11.log4j.appender.CONSOLE.Threshold =INFO     12.log4j.appender.CONSOLE.layout =org .apache.log4j.PatternLayout    13.        14.# Pattern to output the caller's file name and line number.    15.log4j.appender.CONSOLE.layout.ConversionPattern =%5p [%t] (%F:%L) - %m%n    16.  17.# LOGFILE is set to be a File appender using a PatternLayout.    18.log4j.appender.LOGFILE =org .apache.log4j.FileAppender    19.log4j.appender.LOGFILE.File =axis .log    20.log4j.appender.LOGFILE.Append =true     21.log4j.appender.LOGFILE.Threshold =INFO     22.log4j.appender.LOGFILE.layout =org .apache.log4j.PatternLayout    23.log4j.appender.LOGFILE.layout.ConversionPattern =%-4r [%t] %-5p %c %x - %m%n    24.


# Set root logger priority to INFO and its only appender to CONSOLE.
log4j.rootLogger=INFO, CONSOLE
log4j.rootLogger=INFO, CONSOLE, LOGFILE

# Set the enterprise logger category to FATAL and its only appender to CONSOLE.
log4j.logger.org.apache.axis.enterprise=FATAL, CONSOLE

# CONSOLE is set to be a ConsoleAppender using a PatternLayout.
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.Threshold=INFO
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout

# Pattern to output the caller's file name and line number.
log4j.appender.CONSOLE.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n

# LOGFILE is set to be a File appender using a PatternLayout.
log4j.appender.LOGFILE=org.apache.log4j.FileAppender
log4j.appender.LOGFILE.File=axis.log
log4j.appender.LOGFILE.Append=true
log4j.appender.LOGFILE.Threshold=INFO
log4j.appender.LOGFILE.layout=org.apache.log4j.PatternLayout
log4j.appender.LOGFILE.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n
四、常见故障
log4j:WARN Please initialize the log4j system properly.
解决办法:
【eclipse环境】将文件log4j.properties拷贝到src目录下,运行时会自动拷贝到bin目录下。之前可能需要Refresh。

示例:

log4j.rootLogger=INFO, cons, MyAppenderlog4j.appender.syslog.encoding=UTF-8log4j.appender.cons=org.apache.log4j.ConsoleAppenderlog4j.appender.cons.layout=org.apache.log4j.SimpleLayout#日志记录器log4j.appender.MyAppender=org.apache.log4j.RollingFileAppenderlog4j.appender.MyAppender.File=/system.log#log4j.appender.MyAppender.encoding=UTF-8log4j.appender.MyAppender.MaxFileSize = 2048KBlog4j.appender.MyAppender.MaxBackupIndex = 20log4j.appender.MyAppender.layout=org.apache.log4j.PatternLayout#log4j.appender.MyAppender.layout.ConversionPattern=%d (%F:%L) %-5p --> %m%nlog4j.appender.MyAppender.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %p %t %c - %m%n#信息记录器log4j.additivity.MsgLogger = falselog4j.logger.MsgLogger=INFO, MsgAppenderlog4j.appender.MsgAppender=org.apache.log4j.RollingFileAppender#log4j.appender.MsgAppender.encoding=UTF-8log4j.appender.MsgAppender.File=/msg.loglog4j.appender.MsgAppender.MaxFileSize = 2048KBlog4j.appender.MsgAppender.MaxBackupIndex = 20log4j.appender.MsgAppender.layout=org.apache.log4j.PatternLayoutlog4j.appender.MsgAppender.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %m%n#数值记录器log4j.additivity.CollectValueLogger = falselog4j.logger.CollectValueLogger=INFO, CollectValueAppenderlog4j.appender.CollectValueAppender=org.apache.log4j.RollingFileAppender#log4j.appender.CollectValueAppender.encoding=UTF-8log4j.appender.CollectValueAppender.File=/value.loglog4j.appender.CollectValueAppender.MaxFileSize = 20480KBlog4j.appender.CollectValueAppender.MaxBackupIndex = 20log4j.appender.CollectValueAppender.layout=org.apache.log4j.PatternLayoutlog4j.appender.CollectValueAppender.layout.ConversionPattern=%m%n

感谢你能够认真阅读完这篇文章,希望小编分享的"log4j如何配置和使用"这篇文章对大家有帮助,同时也希望大家多多支持,关注行业资讯频道,更多相关知识等着你来学习!

日志 输出 信息 记录器 文件 布局 格式 名称 配置 优先级 时间 目录 篇文章 类名 级别 代码 参数 拷贝 线程 事件 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技有限公司 百单网互联网科技有限公司怎么样 互联网是第几次科技革命的成果 互联网科技公司的优势 智能科技公司是互联网公司吗 互联网 科技 美国互联网科技 极限挑战互联网科技 亿人帮互联网科技 互联网科技有限公司 翻译 居家互联网科技有限公司 老年人脱离互联网科技的作文 湖南洣水互联网科技有限公司扣款 开启互联网科技时代小说 中国的互联网科技企业的崛起 中化能源互联网科技招聘 移动互联网年度科技创新 中国科技创新与世界互联网大会 扫呗互联网科技有限公司 广西科技产业互联网是什么 中关村互联网 科技集团 科技互联网企业 互联网金融与金融科技 互联网科技视频 顺玮阁互联网科技 成都玖崟互联网科技有限公司乐商圈怎么样 科技互联网海报 国大互联网教育科技有限公司薪资 万物互联网智能科技 互联网科技大会大佬
0