상세 컨텐츠

본문 제목

6.11~ 로그남기기

패캠스프링/part2_java

by hippo0207 2022. 7. 12. 17:45

본문

https://gitlab.com/Youngju-Jang/javacoursework/-/tree/master/Chapter6/6-11

java.util.logging

  • 자바에서 기본적으로 제공되는 log package
  • 파일이나 콘솔에 로그 내용을 출력할 수 있음
  • jre/lib/logging.properties 파일을 편집하여 로그의 출력방식 로그 레벨을 변경 할 수 있음
  • logging 패키지에서 제공하는 로그 레벨은 severe, warning, info, config, fine, finer, finest 임
  • (finest가 젤 약한거)
  • 오픈소스로는 log4j를 많이 사용하고 있음

MyLogger 예제 : 싱글톤 패턴임

package ch6;

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); //finest 부터 다찍으라는 것
			fineFile.setLevel(Level.FINE);  //이건 fine레벨부터 찍으라
			warningFile.setLevel(Level.WARNING); // 이건 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);
	}
}
package ch6;

public class LoggerTest {

	public static void main(String[] args) {
		
		MyLogger logger = MyLogger.getLogger();
		
		logger.log("log test");
	}

}

 몰러슈벌 ㅇㅅㅇ

 

예제하나 더있음 위에링크가서 보셈 ㅇㅅㅇ

관련글 더보기

댓글 영역