20220822
한 번에 끝내는 Java/Spring 웹 개발 마스터
1) Logger란?
- 시스템 운영에 대한 기록인 log를 남기는 것이 logger다.
- log를 잘 남기면, 오류가 발생했을때, 디버깅이 용이해지고, 시스템 에러가 어떤 부분에서 발생했는지를 추적해서 확인 할 수 있다.
- java.util.logging이라는 log package를 활용해서 파일이나 콘솔에 로그 내용을 출력할 수 있다.
2) MyLogger
package ch11;
import java.io.IOException;
import java.util.logging.FileHandler;
import java.util.logging.Level;
import java.util.logging.Logger;
import java.util.logging.SimpleFormatter;
public class MyLogger {
Logger logger = Logger.getLogger("mylogger");
private static MyLogger instance = new MyLogger();
public static final String errorLog = "log.txt";
public static final String warningLog = "warning.txt";
public static final String fineLog = "fine.txt";
private FileHandler logFile = null;
private FileHandler warningFile = null;
private FileHandler fineFile = null;
private MyLogger() {
try {
logFile = new FileHandler(errorLog, true);
warningFile = new FileHandler(warningLog, true);
fineFile = new FileHandler(fineLog, true);
} catch (SecurityException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
logFile.setFormatter(new SimpleFormatter());
warningFile.setFormatter(new SimpleFormatter());
fineFile.setFormatter(new SimpleFormatter());
logger.setLevel(Level.ALL);
fineFile.setLevel(Level.FINE);
warningFile.setLevel(Level.WARNING);
logger.addHandler(logFile);
logger.addHandler(warningFile);
logger.addHandler(fineFile);
}
public static MyLogger getLogger() {
return instance;
}
public void log(String msg) {
logger.finest(msg);
logger.finer(msg);
logger.fine(msg);
logger.config(msg);
logger.info(msg);
logger.warning(msg);
logger.severe(msg);
}
public void fine(String msg) {
logger.fine(msg);
}
public void warning(String msg) {
logger.warning(msg);
}
}
3) MyLoggerTest
package ch11;
public class MyLoggerTest {
public static void main(String[] args) {
MyLogger myLogger = MyLogger.getLogger();
myLogger.log("test");
}
}
- 위의 코드를 실행하면,
8월 22, 2022 4:12:18 오후 ch11.MyLogger log
정보: test
8월 22, 2022 4:12:18 오후 ch11.MyLogger log
경고: test
8월 22, 2022 4:12:18 오후 ch11.MyLogger log
심각: test
이라는 출력값을 얻고, 파일에 기록되는 것들을 볼 수 있다.