一、介绍
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