Logger

이진석·2022년 8월 22일
1
post-thumbnail

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) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			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
    이라는 출력값을 얻고, 파일에 기록되는 것들을 볼 수 있다.
profile
혼자서 코딩 공부하는 전공생 초보 백엔드 개발자 / https://github.com/leejinseok0614

0개의 댓글