강좌 & 팁
이번 시간에는 java.util.logging을 사용해서 로그를 찍어 보도록 하겠습니다.
사용 방법이 아주 간단하고 콘솔창과 파일로도 저장할 수 있습니다.
파일은 xml형식으로 출력됩니다.
샘플 소스는 아래와 같습니다.
import java.io.IOException; import java.util.logging.FileHandler; import java.util.logging.Level; import java.util.logging.Logger; public class LogTest { private static final Logger logger = Logger.getLogger(LogTest.class.getName()); private FileHandler fileHandler; public LogTest() { addFileHandler(logger); } public static void main(String[] args) { logger.info("---main() Start---"); LogTest le = new LogTest(); // 정보로그 logger.info("Info... log"); // 오류로그 logger.warning("Warning... log"); // 에러로그 logger.severe("Severe... log"); logger.info("---main() End---"); } private void addFileHandler(Logger logger) { try { // 파일저장 fileHandler = new FileHandler(LogTest.class.getName() + ".log"); } catch (IOException ex) { logger.log(Level.SEVERE, null, ex); } catch (SecurityException ex) { logger.log(Level.SEVERE, null, ex); } logger.addHandler(fileHandler); } }
[실행결과]
[출력된 로그파일]
LogTest.log
<?xml version="1.0" encoding="x-windows-949" standalone="no"?> <!DOCTYPE log SYSTEM "logger.dtd"> <log> <record> <date>2012-04-01T11:53:00</date> <millis>1333253313253</millis> <sequence>1</sequence> <logger>LogTest</logger> <level>INFO</level> <class>LogTest</class> <method>main</method> <thread>10</thread> <message>Info... log</message> </record> <record> <date>2012-04-01T11:53:00</date> <millis>1333253313253</millis> <sequence>2</sequence> <logger>LogTest</logger> <level>WARNING</level> <class>LogTest</class> <method>main</method> <thread>10</thread> <message>Warning... log</message> </record> <record> <date>2012-04-01T11:53:00</date> <millis>1333253313253</millis> <sequence>3</sequence> <logger>LogTest</logger> <level>SEVERE</level> <class>LogTest</class> <method>main</method> <thread>10</thread> <message>Severe... log</message> </record> <record> <date>2012-04-01T11:53:00</date> <millis>1333253313253</millis> <sequence>4</sequence> <logger>LogTest</logger> <level>INFO</level> <class>LogTest</class> <method>main</method> <thread>10</thread> <message>---main() End---</message> </record> </log>
|
로그파일이 xml형식으로 나와서 보기 좀 불편하지만 간단하게 사용하기는 편한것 같습니다.
System.out.println()을 사용하면 콘솔창으로 밖에 표시가 안되지만, java.util.logging을 사용하면
간단하게 파일로 저장할 수 있습니다.
특별하게 디버깅 해야 할곳이 있다면 유용하게 써먹을수 있을것 같네요. ^^
감사합니다.