참고: http://www.yunsobi.com/tt/subby/99
참고: http://decoder.tistory.com/37
첨부된 파일은 검색에서 나온 것으로 문제 있으면 삭제하겠습니다.
볼드체를 참고하기
참고: http://decoder.tistory.com/37
첨부된 파일은 검색에서 나온 것으로 문제 있으면 삭제하겠습니다.
package com.omp.bp.cms.batchreg.service; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import org.apache.log4j.Logger; import org.jdom.Document; import org.jdom.Element; import org.jdom.output.XMLOutputter; import com.omp.bp.cms.batchreg.BatchRegisterErrorConstants; import com.omp.bp.cms.util.DateUtil; /** * 배치 등록 관련 에러 로그 처리 클래스. 콘텐츠 하나에 대한 에러로그XML 생성. * @author Sung,HongJe * */ public class BatchRegisterError { private final static Logger log = Logger.getLogger(BatchRegisterError.class); private final String ERROR_FILE_NAME_HEADER = "ERROR_"; private final String ERROR_FILE_EXT = "XML"; /** * 에러 로그 파일 생성 * @param ftpRepoPath ftp 디렉토리 패스 * @param contentId 콘텐츠ID * @param contentType 콘텐츠타입 - C:채널, E:콘텐츠(에피소드) * @param errorCode 에러코드 * @throws IOException */ public void makeErrorLog(String ftpRepoPath, String contentId, String contentType, int errorCode) throws IOException { // 1. ERROR 파일패스 설정 : ftpRepo/ERROR_[TYPE]_[CID].XML // 2. 에러 코드를 이용해서 XML 내용 설정 // 3. 파일로 저장 // ftpRepo/ERROR_C_000050151.XML String filePath = ftpRepoPath + File.separator + ERROR_FILE_NAME_HEADER + contentType.toUpperCase() + "_" + contentId + "." + ERROR_FILE_EXT; String errorMsg = BatchRegisterErrorConstants.getErrorMsg(errorCode); // XML 내용 생성 Document xmlDoc = makeErrorXML(contentId, errorCode, errorMsg, DateUtil.getToday() + DateUtil.getTime()); File file = new File(filePath); FileOutputStream out = null; try { if(!file.exists()) { // 로그 파일 없으면 생성 File dir = new File(ftpRepoPath); // ftp 디렉토리가 없으면 생성 if(!dir.exists()) dir.mkdir(); file.createNewFile(); } out = new FileOutputStream(file); XMLOutputter serializer = new XMLOutputter(); serializer.output(xmlDoc, out); out.flush(); } catch (IOException e) { log.error("BatchRegisterError.makeErrorLog 로그 파일 작성 중 예외 발생", e); throw e; } finally { if(out != null) { try { out.close(); } catch (IOException e) { log.error("BatchRegisterError.makeErrorLog 로그 파일 작성 종료 중 예외 발생", e); } } } } /** * 에러 메시지를 담는 XML을 생성 후 반환 * @param contentId * @param errorCode * @param errorMsg * @param dateTime * @return */ private Document makeErrorXML(String contentId, int errorCode, String errorMsg, String dateTime) { Document doc = new Document(); Element error_log = new Element("error_log"); // root Element content_id = new Element("content_id"); content_id.setAttribute("id", contentId); // set CID Element msg = new Element("msg"); msg.setText(errorMsg); Element code = new Element("code"); code.setText(String.valueOf(errorCode)); Element time = new Element("time"); time.setText(DateUtil.getToday() + DateUtil.getTime()); content_id.addContent(msg); content_id.addContent(code); content_id.addContent(time); error_log.addContent(content_id); doc.addContent(error_log); return doc; } } |
볼드체를 참고하기
'프로그래밍 > ETC' 카테고리의 다른 글
[XML] jdom 출력 시 출력 포맷 설정하기 (0) | 2010.11.24 |
---|---|
[XML] The processing instruction target matching "[xX][mM][lL]" is not allowed (0) | 2010.10.14 |
[json] org.json.* 사용하기 (0) | 2010.04.20 |
[XPath] StringReader를 이용한 InputSource 를 소스로 해서, XPath.evaluate() 시 에러 (0) | 2009.03.03 |
[XPath] String으로 InputSource 생성하기 (0) | 2009.03.02 |