一、介绍
Logger4j是Apache的一个开源项目,通过使用Log4j,我们可以控制日志信息输送的;我们也可以控制每一条日志的输出格式;通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程。最令人感兴趣的就是,这些可以通过一个配置文件来灵活地进行配置,而不需要修改应用的代码。
Log4j由三个重要的组件构成:
- 优先级(Loggers):从高到低有ERROR、WARN、 INFO、DEBUG,用来指定这条日志信息的重要程度
- 输出目的地(Appenders):指定了日志将打印到控制台还是文件中
- 输出格式(Layouts):控制了日志信息的显示内容
二、配置文件(与Spring集成)
1、web.xml 设定log4j.xml文件位置
<context-param> <param-name>log4jConfigLocation</param-name> <param-value>classpath:log4j.xml</param-value> </context-param>
2、log4j.xml配置
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> <log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/"> <appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender"> <param name="Target" value="System.out" /> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="[项目名] %-d{yyyy-MM-dd HH:mm:ss} %p [%t] %c{1}.%M(%L) | %m%n" /> </layout> </appender> <appender name="APPLOGFILE" class="org.apache.log4j.RollingFileAppender"> <param name="encoding" value="UTF-8" /> <param name="File" value="c:/logs/ynzjj_qyxypt.log" /> <param name="Append" value="true" /> <param name="MaxFileSize" value="1024KB" /> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="[项目名] %-d{yyyy-MM-dd HH:mm:ss} %-5p %-15c{1}: %m%n" /> </layout> </appender> <!-- 指定logger的设置,默认additivity="true" 注意additivity="true"与appender-ref同时配置会导致重复 --> <logger name="com.chinacreator"> <level value="INFO" /> </logger> <logger name="org.springframework"> <level value="INFO" /> </logger> <logger name="org.apache.ibatis"> <level value="DEBUG" /> </logger> <root> <priority value="DEBUG" /> <appender-ref ref="CONSOLE" /> <!-- <appender-ref ref="APPLOGFILE" /> --> </root> </log4j:configuration>
3、Java使用
package com.mucfc; import org.apache.log4j.Logger; /** */ public class Test { private static Logger logger = Logger.getLogger(Test.class); /** * @param args */ public static void main(String[] args) { // System.out.println("This is println message."); // 记录debug级别的信息 logger.debug("This is debug message."); // 记录info级别的信息 logger.info("This is info message."); // 记录error级别的信息 logger.error("This is error message."); } }
properties类型配置:https://blog.csdn.net/luohai859/article/details/52250807