为Java项目配置日志记录,看似简单,但要正确且高效地使用,只需三个关键步骤:导入log4j核心jar包、编写并放置配置文件、在代码中初始化Logger对象。完成这三步闭环,即可构建一个可配置、支持分级别、定向输出的日志系统。下面我们逐一详细讲解。
导入log4j.jar到项目构建路径
在MyEclipse中操作步骤简单:右键点击项目 → Properties → Java Build Path → Libraries → Add External JARs… → 选择下载的log4j-1.2.17.jar(或兼容的1.x版本)→ 点Open → Apply and Close。完成。
需要注意的是,必须选用log4j-1.x系列的jar包。log4j2的API和配置方式完全不同,混用会导致错误。导入成功后,在项目下的“Referenced Libraries”节点里会看到log4j-1.2.17.jar这个条目。如果没有出现,请先检查jar包是否损坏,或者路径中是否包含中文、空格等问题。
在src目录下创建并配置log4j.properties
右键点击项目里的src文件夹 → New → File → 输入文件名log4j.properties → Finish。然后双击打开这个文件,将以下最小可用配置复制粘贴进去:
log4j.rootLogger=DEBUG, stdout, file
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{HH:mm:ss} [%p] %c - %m%n
log4j.appender.file=org.apache.log4j.FileAppender
log4j.appender.file.File=log.log
log4j.appender.file.Append=true
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} [%p] %c.%M(%L) - %m%n
保存即可。该配置的含义是:同时向控制台输出DEBUG及以上级别的日志,并追加写入项目根目录下的log.log文件。控制台日志格式为时分秒、级别、类名和消息;文件日志则更详细,包含日期、方法名和行号。
在Java类中声明并使用Logger对象
这一步包含三个要点,缺一不可。
第一步:导入。在需要记录日志的类顶部加上:
import org.apache.log4j.Logger;
第二步:声明。在类内部定义一个静态的Logger实例:
private static final Logger logger = Logger.getLogger(YourClassName.class);
第三步:调用。在方法里使用,例如:
logger.debug("程序启动,参数值为:" + input);
logger.info("用户登录成功,ID:" + userId);
logger.error("数据库连接失败", e);
这里有一个关键点:Logger.getLogger()参数必须传入当前类的.class对象,否则日志中显示的来源类名会混乱,导致排查问题时难以定位。
配置完成后,运行这个Java类,你将在控制台看到带有时间戳和级别的日志行。随后刷新项目根目录,确认log.log文件已经生成,且内容与控制台输出一致。只要这三步顺利执行,你的项目就拥有了一个灵活的日志系统,后续调整层级、输出目标都非常方便。

