该文章纯属小白文章,适合没有用过log4j但是想从实践入手的同学参考;写本文的动机是之前我在公司做项目的时候,有涉及到log4j(埋点日志),于是打算去网上找点小案例来自己动手模仿一下,但是发现的大多数案例还是不足以被我称之为“入门案例”。所以我就索性自己写一篇了;
本文纯属入门。看完这篇文,其余的知识你可以在此基础上去实践;
新建项目我就不多说了,就是建一个项目而已,Java项目或者maven项目都无所谓的;我这里新建的是maven项目,因为maven项目导入依赖包比较方便,考虑到是入门文章,所以可能你新建的是Java项目但是你不会导入依赖包,没事,我文章最后有顺带说了一下Java项目怎么导入依赖的jar包。
新建一个maven项目对名称和其他设置啥的没什么要求,毕竟只是一个小实验而已,怎么开心怎么来;
Maven的依赖包导入我之前说过,相对的会比较方便,新建了maven项目之后,项目只需要在项目中的pom.xml里加几句话就可以了:
1. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
2. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
3. <modelVersion>4.0.0modelVersion>
4. <groupId>GavingroupId>
5. <artifactId>experimentartifactId>
6. <version>0.0.1-SNAPSHOTversion>
7.
8. <dependencies>
9.
10. <dependency>
11. <groupId>log4jgroupId>
12. <artifactId>log4jartifactId>
13. <version>1.2.14version>
14. dependency>
15.
16. dependencies>
17.project>
有了依赖的jar包,之后就把这个jar包使用起来;我新建了一个类(类名和包名什么的都无所谓的),代码里的东西很简洁,没有多余的东西,就搞一个Logger的对象,然后使用这个logger对象分别打印级别的信息:
1. package experiment;
2.
3. import org.apache.log4j.Logger;
4.
5. public class Mylog4j {
6. private static final Logger logger = Logger.getLogger(Mylog4j.class);
7. public static void main(String[] args) {
8. //FATAL、ERROR、WARN、INFO、DEBUG、ALL 级别从高到低
9. logger.fatal("5");
10. logger.error("4");
11. logger.warn("3");
12. logger.info("2");
13. logger.debug("1");
14. }
15.}
写好了log4j的代码之后直接运行是不行的,会报这样的错:
这里的原因是,你没有log4j配置文件。OK,接下来把log4j的配置文件加进去;
文件的位置和内容如下图:
1. xml version="1.0" encoding="UTF-8"?>
2. >
3.
4.
5. <log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
6.
7.
8. <appender name="log.console" class="org.apache.log4j.ConsoleAppender">
9. <layout class="org.apache.log4j.PatternLayout">
10. <param name="ConversionPattern" value="%d{HH:mm:ss,SSS} %5p (%C{1}:%M) - %m%n" />
11. layout>
12. appender>
13.
14.
15. <logger name="experiment" additivity="false">
16. <level value="INFO" />
17. <appender-ref ref="log.console" />
18. logger>
19.
20.log4j:configuration>
至于上面添加的log4j.xml里面的东西是什么意思,我简单的说一下:
上图应该就能表明了,就是在日志控制器 logger里说:我要用"log.console"里定义的东西去搞"experiment"里的东西;
至于控制台输出里的class="org.apache.log4j.ConsoleAppender"和class="org.apache.log4j.PatternLayout"是在说,怎么实现配置的功能要用的类(就是之前导入的jar包里的东西)。
配置这个东西,当然远远没有这么简单,但是那些其他的东西你可以去网络上搜一下,这里只给了一个和很基础的内容展示。
以上该加的配置,该写的代码搞定了,执行结果如下:
上图你会发现,“1”没有打印出来,那是因为我在log4j.xml里,配置了
表示打印级别为INFO已经INFO之上的日志;而在日志的打印里,日志的级别排序为:
FATAL>ERROR>WARN>INFO>DEBUG
Jar包的话你们去百度一下“log4j-1.2.14.jar”直接下载就行;