博客
关于我
log4j的配置说明
阅读量:792 次
发布时间:2023-02-06

本文共 2490 字,大约阅读时间需要 8 分钟。

Log4j配置指南

1. 基本配置

1.1 添加Log4j库

首先,需要在项目的lib目录下添加log4j-1.2.8.jar文件。这个JAR文件是Log4j的核心组件,必不可少。

1.2 创建配置文件

然后,在项目的CLASSPATH路径下新建一个名为log4j.properties的文件。文件内容如下:

log4j.rootCategory=INFO, stdout, Rlog4j.appender.stdout=org.apache.log4j.ConsoleAppenderlog4j.appender.stdout.layout=org.apache.log4j.PatternLayoutlog4j.appender.stdout.layout.ConversionPattern=%m%nlog4j.appender.R=org.apache.log4j.DailyRollingFileAppenderlog4j.appender.R.File=D:\Tomcat 5.5\logs\qc.loglog4j.appender.R.layout=org.apache.log4j.PatternLayoutlog4j.appender.R.layout.ConversionPattern=%d-[TS]%p%t%c-%m%nlog4j.logger.com.neusoft=DEBUGlog4j.logger.com.opensymphony.oscache=ERRORlog4j.logger.net.sf.navigator=ERRORlog4j.logger.org.apache.commons=ERRORlog4j.logger.org.apache.struts=WARNlog4j.logger.org.displaytag=ERRORlog4j.logger.org.springframework=DEBUGlog4j.logger.com.canoo.webtest=WARNlog4j.logger.org.hibernate.ps.PreparedStatementCache=WARNlog4j.logger.org.hibernate=DEBUGlog4j.logger.org.logicalcobwebs=WARN

2. 配置说明

2.1 根Logger配置

log4j.rootCategory指定了根Logger的日志级别和输出目标。INFO级别的日志信息会被stdoutR两个目的地接收。

2.2 Appender配置

  • log4j.appender.stdout定义了一个名为stdout的Appender,使用ConsoleAppender将日志信息输出到控制台。
  • log4j.appender.R定义了一个名为R的Appender,使用DailyRollingFileAppender将日志信息写入文件D:\Tomcat 5.5\logs\qc.log

2.3 Layout配置

  • log4j.appender.stdout.layout设置为PatternLayout,指定了日志信息的格式。
  • log4j.appender.R.layout同样设置为PatternLayout,支持自定义日志格式。

2.4 ConversionPattern

log4j.appender.stdout.layout.ConversionPattern定义了日志信息的打印格式,支持使用通用格式化字符串。

2.5 Logger级别设置

log4j.logger.*用于设置特定包下的Logger级别。例如:

  • log4j.logger.com.neusoft=DEBUG设置com.neusoft包下的Logger级别为DEBUG。
  • log4j.logger.org.apache.commons=ERROR设置org.apache.commons包下的Logger级别为ERROR。

3. 使用Log4j

3.1 导入必要的类

在需要使用Log4j的类中,导入以下类:

import org.apache.commons.logging.Log;import org.apache.commons.logging.LogFactory;

3.2 定义Logger实例

在类中定义一个静态私有Logger实例:

private final Log log = LogFactory.getLog(getClass());

3.3 使用Log4j方法

在需要输出日志的方法中,使用log实例调用相应的方法:

if (log.isDebugEnabled()) {    log.debug("系统信息:…”);}if (log.isInfoEnabled()) {    log.info("信息:…”);}if (log.isWarnEnabled()) {    log.warn("警告:…”);}if (log.isErrorEnabled()) {    log.error("错误:…”);}if (log.isFatalEnabled()) {    log.fatal("严重错误:…”);}

4. 日志格式化

Log4j支持使用类似printf的格式化字符串:

  • %m 输出消息内容
  • %p 输出日志级别
  • %r 输出日志记录时间(毫秒)
  • %c 输出所属类
  • %t 输出线程名
  • %d 输出日期和时间
  • %n 输出换行符(支持Windows和Unix)

例如:

log.debug("系统信息:%m%n", "系统信息:…”);

5. 常见问题

  • 如果没有配置EHCache,log4j.logger.net.sf.navigator=ERRORlog4j.logger.org.apache.commons=ERROR可以忽略。
  • 根据项目需求调整log4j.appender.R.Filelog4j.logger.*的配置。

转载地址:http://ldufk.baihongyu.com/

你可能感兴趣的文章
liunx编写启动,kill进程脚本
查看>>
liux的学习笔记
查看>>
live555 testrtspclient客户端建立rtp over tcp 异常问题
查看>>
LiveBOS UploadFile.do 任意文件上传漏洞复现(XVE-2023-21708)
查看>>
LiveData Call Adapter for Retrofit 使用教程
查看>>
LiveData的分析与简单使用
查看>>
LiveGBS user/save 逻辑缺陷漏洞复现(CNVD-2023-72138)
查看>>
live和on的区别
查看>>
Liya Linux:Arch 的又一尝试,提供 Cinnamon 和 MATE 桌面,底层为 Btrfs
查看>>
li下的ul----多级列表
查看>>
lk部分没有msm8937相关目录原因(指向msm8952)
查看>>
LL(1),LR(0),SLR(1),LR(1),LALR(1)的 联系与区别
查看>>
Llama 越狱探索 Llama-3.1-8B-Instruct去除限制过程
查看>>
Llama3的传奇还在继续,网友手搓Llama3-12B-Chinese,Ollama轻松部署
查看>>
llm 从0开始学习大语言模型, transformer架构学习
查看>>
LLM:《第 1 部分》只是一个记忆技巧吗?
查看>>
LLM:《第 3 部分》从数学角度评估封闭式LLM的泛化能力
查看>>
LLM;超越记忆《第 2 部分 》
查看>>
LLVM 简介-ChatGPT4o作答
查看>>
LLVM简明安装教程(非常详细)从零基础入门到精通,看完这一篇就够了
查看>>