File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
package com.munjaon.client.util;
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.PrintWriter;
import java.text.SimpleDateFormat;
import java.util.Date;
/**
* 로깅 관련 유틸리티 클래스
* @author JDS
*/
public class LogUtil {
private final static String sTimeFormat = "[HH:mm:ss.SSS] ";
private final static String sDateFormat = "_yyyyMMdd";
private final static String sFileExt = ".log";
private PrintWriter out;
private String sLogFile;
private String sDate;
public LogUtil(String sLogFile) {
this.sLogFile = sLogFile;
if ( sLogFile != null ) {
FileUtil.mkdirs(sLogFile, true);
}
}
private void open() {
close();
if (sLogFile != null) {
try {
out = new PrintWriter( new BufferedWriter( new FileWriter(sLogFile + sDate + sFileExt, true) ), true );
} catch(Exception e) {
out = null;
}
}
if( out == null ) {
out = new PrintWriter(System.out, true);
}
}
public void close() {
if (sLogFile != null && out != null) {
try {
out.close();
out = null;
} catch (Exception e) {
}
}
}
public static void log(String sFile, Object oLog) {
LogUtil logger = new LogUtil(sFile);
logger.log(oLog);
logger.close();
}
public synchronized void log(Object oLog) {
SimpleDateFormat sdf = new SimpleDateFormat();
Date date = new Date();
sdf.applyPattern(sDateFormat);
String sDates = sdf.format(date);
sdf.applyPattern(sTimeFormat);
String sTime = sdf.format(date);
try {
if (!sDates.equals(this.sDate)) {
this.sDate = sDates;
open();
}
if (oLog instanceof Exception) {
out.print( sTime );
((Exception)oLog).printStackTrace(out);
if (sLogFile == null) {
((Exception)oLog).printStackTrace();
}
} else {
out.println( sTime + oLog );
}
out.flush();
} catch ( Exception e ) {
close();
}
}
}