使用Log4j+Commons-Logging来进行日志的管理
1.导入依赖
<dependencies> <!-- https://mvnrepository.com/artifact/log4j/log4j --> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.17</version> </dependency> <!-- https://mvnrepository.com/artifact/commons-logging/commons-logging --> <dependency> <groupId>commons-logging</groupId> <artifactId>commons-logging</artifactId> <version>1.2</version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> </dependency> </dependencies>
2.基本使用
public class LogTest {
//日志对象
private Log log = LogFactory.getLog(LogTest.class);
@Test
public void test1() {
log.trace("hello trace");
log.debug("hello debug");
log.info("hello info");
log.warn("hello warn");
log.error("hello error");
log.fatal("hello fatal");
}
}
配置一个追加器,在resources里面创建一个log4j.xml的文件
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE log4j:configuration PUBLIC "-//LOGGER" "http://org/apache/log4j/xml/log4j.dtd"> <log4j:configuration> <!-- org.apache.log4j.ConsoleAppender 输出到控制台 --> <appender name="myConsole" class="org.apache.log4j.ConsoleAppender"> <!--输出格式--> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="%-d{yyyy-MM-dd HH:mm:ss,SSS} [%c]-[%p] %m%n"/> </layout> </appender> <!-- 根logger的设置--> <root> <!--优先级设置,all < trace < debug < info < warn < error < fatal < off --> <priority value="all"/> <appender-ref ref="myConsole"/> </root> </log4j:configuration>
输出运行结果
写完控制台输出之后,我们再来研究如何输入保存到本地文件
在resources里面的log4j.xml中添加这样的配置
<!-- 输出到文件 --> <appender name="myFile1" class="org.apache.log4j.RollingFileAppender"> <param name="File" value="e:/log/hello.log"/><!--文件位置--> <param name="Append" value="true"/><!--是否选择追加--> <param name="MaxFileSize" value="1kb"/><!--文件最大字节数--> <param name="MaxBackupIndex" value="2"/><!--新文件数量--> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="%-d{yyyy-MM-dd HH:mm:ss,SSS} [%c]-[%p] %m%n"/> </layout> </appender>
在<root>里面配置logger
<appender-ref ref="myFile1"/>
我们再来运行可以看到在我本地多了一个日志文件
里面正是打印的日志信息
第二种方式:每天都生成一个日志文件
<!-- 输出到文件 (每天都生成一个日志文件)--> <appender name="myFile2" class="org.apache.log4j.DailyRollingFileAppender"> <param name="File" value="e:/log/world.log"/><!--文件位置--> <param name="Append" value="true"/><!--是否选择追加--> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="%-d{yyyy-MM-dd HH:mm:ss,SSS} [%c]-[%p] %m%n"/> </layout> </appender>
<appender-ref ref="myFile2"/>
这里我们循环10次日志信息
@Test
public void test1() {
for(int i=1;i<10;i++)
{
log.trace("hello trace"+i);
log.debug("hello debug"+i);
log.info("hello info"+i);
log.warn("hello warn"+i);
log.error("hello error"+i);
log.fatal("hello fatal"+i);
}
}
运行效果