Logger 클래스는 log를 출력할 수 있게 도와주는 클래스이다.
바로 코드로 살펴보자.
import java.util.logging.Level;
import java.util.logging.Logger;
public class LoggingExample1 {
private static Logger logger = Logger.getLogger(LoggingExample1.class.getName());
public static void main(String[] args) {
logger.log(Level.WARNING, "Warning logging");
logger.log(Level.INFO, "Info logging");
logger.log(Level.SEVERE, "Severe logging");
}
}
[output]
Jun 12, 2021 3:04:45 PM LoggingExample1 main
WARNING: Warning logging
Jun 12, 2021 3:04:46 PM LoggingExample1 main
INFO: Info logging
Jun 12, 2021 3:04:46 PM LoggingExample1 main
SEVERE: Severe logging
private static Logger logger = Logger.getLogger(LoggingExample1.class.getName());
Logger객체를 생성해서 getLogger()를 통해 메인 클래스의 이름을 저장한다.
logger.log(Level.WARNING, "Warning logging");
logger.log(log level,"message")
이렇게 쓴다.
level.WARNING은 말그대로 log의 level중 하나이다. 각 레벨은 밑에서 다루겠다.
위에서는 logger.log(Level.WARNING,"Warning logging"); 과 같이 Level을 써주었다. 하지만 Level인자 없이도 출력할 수 있다.
logger.warning("Warning logging");
logger.info("Info logging");
logger.severe("Severe logging");
logger.(log의 level)("message")형태로 써주면 된다.
[output]
Jun 12, 2021 3:06:19 PM LoggingExample2 main
WARNING: Warning logging
Jun 12, 2021 3:06:19 PM LoggingExample2 main
INFO: Info logging
Jun 12, 2021 3:06:19 PM LoggingExample2 main
SEVERE: Severe logging
setLevel() method를 통해서 특정 level이상의 log들만 출력 할수도 있다.
level의 순서는 다음과 같다.
public class LoggingExample5 {
private static Logger logger = Logger.getLogger(LoggingExample5.class.getName());
public static void main(String[] args) {
logger.setLevel(Level.WARNING);
logger.warning("Warning logging");
logger.info("Info logging");
logger.severe("Severe logging");
}
}
다음과 같이 setLevel을 WARNING으로 해주었다면, WARNING밑에 단계인 INFO는 출력하지 않게 된다.
[output]
Jun 12, 2021 3:08:33 PM LoggingExample5 main
WARNING: Warning logging
Jun 12, 2021 3:08:33 PM LoggingExample5 main
SEVERE: Severe logging