日志分为7个级别,详细信息我们可以在Level类中查看:
# RootLogger 的默认处理器为
handlers= java.util.logging.ConsoleHandler
# RootLogger 的默认的日志级别
.level= CONFIG
public class Main {
public static void main(String[] args) {
Logger logger = Logger.getLogger(Main.class.getName()); // 获取logger
logger.log(Level.SEVERE, "severe error");
logger.log(Level.WARNING, "warning");
logger.log(Level.INFO, "info");
logger.log(Level.CONFIG, "config");
logger.log(Level.FINE, "fine");
logger.log(Level.FINEST,"finest");
}
}
默认级别低于INFO
的不会打印到控制台上
setLevel(Level newLevel)
:设置日志级别,指定此日志记录器将记录的消息级别。低于此值的消息级别将被丢弃。级别值 Level.OFF
可用于关闭日志记录。Level.ALL
表示全部级别日志将被打印
public class Main {
public static void main(String[] args) {
Logger logger = Logger.getLogger(Main.class.getName()); // 获取logger
logger.setLevel(Level.ALL); // 设置全部级别日志都打印
logger.setUseParentHandlers(false); // 不使用父(默认)日志处理器
// 使用自定义日志处理器
ConsoleHandler consoleHandler = new ConsoleHandler();
consoleHandler.setLevel(Level.ALL);
logger.addHandler(consoleHandler);
logger.log(Level.SEVERE, "severe error");
logger.log(Level.WARNING, "warning");
logger.log(Level.FINE, "lower than info");
}
}
将日志输出到本地的log文件上
FileHandler fileHandler = new FileHandler("test.log");
fileHandler.setLevel(Level.WARNING);
fileHandler.setFormatter(simpleFormatter);
logger.addHandler(fileHandler);
但是这样得到的日志格式是xml格式的,使用SimpleFormatter
将日志格式化
SimpleFormatter simpleFormatter = new SimpleFormatter();
fileHandler.setFormatter(simpleFormatter);
Logger logger = Logger.getLogger(Main.class.getName()); // 获取logger
logger.setFilter(record -> false); // lambda
setFilter
接收的参数为一个Filter
接口
指定某日志输出
Logger logger = Logger.getLogger(Main.class.getName()); // 获取logger
logger.setFilter(record -> record.getMessage().equals("hello"));
logger.info("hello");
在mybatis-config.xml
中添加:
<settings>
<setting name="logImpl" value="STDOUT_LOGGING"/>
settings>
.