版权声明:转载或者引用本文内容请注明原作者名字及来源地址→ https://blog.csdn.net/weixin_43254907/article/details/88866846
java.util.logging:JDK标准库中的类,是JDK 1.4 版本之后添加的日志记录的功能包。
log4j:最强大的记录日志的方式。可以通过配置 .properties
或是 .xml
的文件, 配置日志的目的地,格式等等。log4j启动时,默认会寻找source folder
下的log4j.xml
配置文件,若没有,会寻找log4j.properties
文件。
commons-logging:最综合和常见的日志记录方式,是Java中的一个日志接口,一般会与log4j一起使用。自带SimpleLog可用于日志记录。
JDK Logging把日志分为如下七个级别,等级依次降低。
级别 | SEVERE | WARNING | INFO | CONFIG | FINE | FINER | FINEST |
---|---|---|---|---|---|---|---|
调用方法 | severe() | warning() | info() | config() | fine() | finer() | finest() |
含义 | 严重 | 警告 | 信息 | 配置 | 良好 | 较好 | 最好 |
如果将级别设置为INFO
,则INFO
后面的不会输出。info前面的全部输出。通过控制级别达到控制输出的目的。
import java.util.logging.Level;
import java.util.logging.Logger;
/**
* @Description: LOG4J
* @Author: ChromeRo
* @Date: 2019.3.28 11:34 上午
*/
public class LogJDKTest {
private static Logger log = Logger.getLogger(LogJDKTest.class.toString());
public static void main(String[] args) {
// all→finest→finer→fine→config→info→warning→server→off
// 级别依次升高,后面的日志级别会屏蔽之前的级别
log.setLevel(Level.INFO);
log.finest("finest");
log.finer("finer");
log.fine("fine");
log.config("config");
log.info("info");
log.warning("warning");
log.severe("server");
}
}
控制台输出:
三月 28, 2019 12:21:12 下午 com.chromer.test.LogJDKTest main
信息: info
三月 28, 2019 12:21:12 下午 com.chromer.test.LogJDKTest main
警告: warning
三月 28, 2019 12:21:12 下午 com.chromer.test.LogJDKTest main
严重: server
1.JDK log默认会有一个控制台输出,它有两个参数,第一个参数设置输出级别,第二个参数设置输出的字符串。
2.同时也可以设置多个输出(Hander),每个输出设置不用的level,然后通过addHandler添加到了log中。
注意:为log设置级别与为每个handler设置级别的意义是不同的。
import java.util.logging.ConsoleHandler;
import java.util.logging.Handler;
import java.util.logging.Level;
import java.util.logging.Logger;
/**
* @Description: LOG4J
* @Author: ChromeRo
* @Date: 2019.3.28 11:34 上午
*/
public class LogJDKTest {
public static Logger log = Logger.getLogger(LogJDKTest.class.toString());
static {
Handler console = new ConsoleHandler();
console.setLevel(Level.SEVERE);
log.addHandler(console);
}
public static void main(String[] args) {
// all→finest→finer→fine→config→info→warning→server→off
// 级别依次升高,后面的日志级别会屏蔽之前的级别
log.setLevel(Level.INFO);
log.finest("finest");
log.finer("finer");
log.fine("fine");
log.config("config");
log.info("info");
log.warning("warning");
log.severe("server");
}
}
控制台输出:
// 下面的输出是默认控制台的
三月 28, 2019 12:21:12 下午 com.chromer.test.LogJDKTest main
信息: info
三月 28, 2019 12:21:12 下午 com.chromer.test.LogJDKTest main
警告: warning
三月 28, 2019 12:21:12 下午 com.chromer.test.LogJDKTest main
严重: server
// 下面的输出是自己添加hander的
三月 28, 2019 12:21:12 下午 com.chromer.test.LogJDKTest main
严重: server
根据级别等级,如果设为all,则所有的信息都会被输出,如果设为off,则所有的信息都不会输出。