初识Log4j

log4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件,甚至是套接口服务器、NT的事件记录器、UNIX Syslog守护进程等;我们也可以控制每一条日志的输出格式;通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程。最令人感兴趣的就是,这些可以通过一个配置文件来灵活地进行配置,而不需要修改应用的代码。

新建一个Maven项目

打开idea,新建一个maven项目,名字任意。

log4j 使用教程详解(log4j的使用)(1)

我这里把它取名为log4jTest

log4j 使用教程详解(log4j的使用)(2)

下一步之后点finnish完成。

log4j 使用教程详解(log4j的使用)(3)

这样我们就建好一个maven工程了。这里补充一句:Maven项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具。Maven是一个项目管理工具,它包含了一个项目对象模型 (Project Object Model),一组标准集合,一个项目生命周期(Project Lifecycle),一个依赖管理系统(Dependency Management System),和用来运行定义在生命周期阶段(phase)中插件(plugin)目标(goal)的逻辑。当你使用Maven的时候,你用一个明确定义的项目对象模型来描述你的项目,然后Maven可以应用横切的逻辑,这些逻辑来自一组共享的(或者自定义的)插件。

生成之后的目录

log4j 使用教程详解(log4j的使用)(4)

这里我们通过编写pom.xml文件进行log4j包的导入。需要说明一点的是,apache公司在2012年就已经停止了对log4j的更新,因为1.2.17版本已经是非常完善的一个版本了。

<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.test</groupId><artifactId>log4jTest</artifactId><version>1.0-SNAPSHOT</version><dependencies><dependency><groupId>log4j</groupId><artifactId>log4j</artifactId><version>1.2.17</version></dependency></dependencies></project>

在右侧maven-->log4jTest里面就能看到dependencies文件夹,里面就是已经导进来的包。

log4j 使用教程详解(log4j的使用)(5)

log4j 使用教程详解(log4j的使用)(6)

log4j.properties文件的编写

接下来要配置log4j的配置文件,控制log4j的输出只需要通过配置文件的编写。

在src-->main里面有个resource文件夹,里面的文件在运行的时候会被添加到classpath路径里面。所有的配置文件都应该被放在里面,否则程序在运行时可能会找不到配置文件而报错。(添加了过滤除外)

log4j 使用教程详解(log4j的使用)(7)

在resources上右键,新建一个名为log4j.properties的文件。

#将等级为DEBUG的日志信息输出到console和file这两个目的地,console和file的定义在下面的代码log4j.rootLogger=DEBUG,console,file#控制台输出的相关设置log4j.appender.console = org.apache.log4j.ConsoleAppenderlog4j.appender.console.Target = System.outlog4j.appender.console.Threshold=DEBUGlog4j.appender.console.layout = org.apache.log4j.PatternLayoutlog4j.appender.console.layout.ConversionPattern=[%c]-%m%n#文件输出的相关设置log4j.appender.file = org.apache.log4j.RollingFileAppender

#下面的语句是将在项目目录里面一个名为log的文件夹下创建一个finnian.log的文件,文件里面就是输出的日志。log4j.appender.file.File=./log/finnian.log

#单个文件最大值为10mblog4j.appender.file.MaxFileSize=10mblog4j.appender.file.Threshold=DEBUGlog4j.appender.file.layout=org.apache.log4j.PatternLayoutlog4j.appender.file.layout.ConversionPattern=[%p][%d{yy-MM-dd}][%c]%m%n#日志输出级别log4j.logger.org.mybatis=DEBUGlog4j.logger.java.sql=DEBUGlog4j.logger.java.sql.Statement=DEBUGlog4j.logger.java.sql.ResultSet=DEBUGlog4j.logger.java.sql.PreparedStatement=DEBUG

log4j实现

在java文件下创建测试类

log4j 使用教程详解(log4j的使用)(8)

定义主方法,且要注意包是apache下的包

log4j 使用教程详解(log4j的使用)(9)

import org.apache.log4j.Logger;public class test {public static void main(String[] args) {System.out.println("hello world");Logger logger = Logger.getLogger(test.class);logger.info("info:主函数运行");logger.debug("Debug:主函数运行");logger.error("error:主函数运行");}}

logger中可以选择不同等级的日志标记:info,debug,error。

运行结果

在运行之后就可以正常显示

log4j 使用教程详解(log4j的使用)(10)

且在finnian.log文件中

log4j 使用教程详解(log4j的使用)(11)

,