最近开始在研究log4j,可能因为是想要自己去搭建框架那。
废话不多说,先上一个例子好了。
第一步:当然是引入对象的jar包了
地址:http://www.apache.org/dyn/closer.cgi/logging/log4j/1.2.17/log4j-1.2.17.tar.gz
第二步:代码
package com.sun.test; import org.apache.log4j.Logger; import org.apache.log4j.xml.DOMConfigurator; /** * @author szy * @version 创建时间:2018-4-5 下午9:35:00 * */ public class Test1 { private static Logger logger = Logger.getLogger(Test1.class); /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub //读取使用Java的特性文件编写的配置文件 logger.debug("[1]-my level is DEBUG 天"); logger.info("[2]-my level is INFO"); logger.warn("[3]-my level is WARN"); logger.error("[4]-my level is ERROR"); } }
第三步:log4j.xml加入配置文件
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> <log4j:configuration> <!-- 将日志信息输出到控制台 --> <appender name="stdout" class="org.apache.log4j.ConsoleAppender"> <!-- 设置日志输出的样式 --> <layout class="org.apache.log4j.PatternLayout"> <!-- 设置日志输出的格式 --> <!-- <param name="ConversionPattern" value="[%d{yyyy-MM-dd HH:mm:ss:SSS}] [%-5p] [method:%l]%n%m%n%n" /> --> <param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss} [%-5p] %m%n"/> <param name="Threshold" value="info"></param> </layout> <!-- 过滤器设置输出的级别 --> <!-- <filter class="org.apache.log4j.varia.LevelRangeFilter"> 设置日志输出的最小级别 <param name="levelMin" value="DEBUG" /> 设置日志输出的最大级别 <param name="levelMax" value="ERROR" /> 设置日志输出的xxx,默认是false <param name="AcceptOnMatch" value="true" /> </filter> --> </appender> <!-- 输出日志到文件 每天一个文件 --> <appender name="logfile" class="org.apache.log4j.DailyRollingFileAppender"> <param name="Threshold" value="info"></param> <!-- 设置日志信息输出文件全路径名 --> <param name="File" value="D:/log4j/logs/logFile.log" /> <!-- 设置日志以天为单位回滚一次,即产生一个新的日志文件 --> <param name="DatePattern" value="'.'yyyy-MM-dd'.log'" /> <!-- 设置日志输出的样式 --> <layout class="org.apache.log4j.PatternLayout"> <!-- 设置日志输出的格式 --> <param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss} [%-5p] %m%n" /> </layout> </appender> <!-- 输出日志到文件 文件大小到达指定尺寸的时候产生一个新的文件 --> <!-- 将日志信息输出到文件,但是当文件的大小达到某个阈值的时候,日志文件会自动回滚 --> <appender name="railyFile" class="org.apache.log4j.RollingFileAppender"> <!-- 设置日志信息输出文件全路径名 --> <param name="File" value="D:/log4j/logs/logFile2.log" /> <!-- 设置是否在重新启动服务时,在原有日志的基础添加新日志 <param name="Append" value="true" /> --> <!-- 设置保存备份回滚日志的最大个数 --> <param name="MaxBackupIndex" value="10" /> <!-- 设置当日志文件达到此阈值的时候自动回滚,单位可以是KB,MB,GB,默认单位是KB --> <param name="MaxFileSize" value="10MB" /> <!-- 设置日志输出的样式 --> <layout class="org.apache.log4j.PatternLayout"> <!-- 设置日志输出的格式 --> <param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss} [%-5p] %m%n" /> </layout> </appender> <root> <level value="debug" /> <appender-ref ref="stdout"/> <appender-ref ref="logfile"/> <appender-ref ref="railyFile"/> </root> </log4j:configuration>
之后运行,主程序,能在控制台和log文件里面看到所打印的信息,便说明成功了。
这里会发现,其实并没有哪里去配置log对象去读取配置文件的。