2013-06-25 2 views
0

이 가이드에 따라 로깅 정보를 형식이 지정된 FileHandler가있는 파일로 출력합니다.로거 파일 처리기 포맷 문제

public class TestLog { 

public static Logger logger; 

static { 
try { 
    boolean append = true; 
    FileHandler fh = new FileHandler("TestLog.log", append); 
    fh.setFormatter(new Formatter() { 
    public String format(LogRecord rec) { 
     StringBuffer buf = new StringBuffer(1000); 
     buf.append(new java.util.Date()); 
     buf.append(' '); 
     buf.append(rec.getLevel()); 
     buf.append(' '); 
     buf.append(formatMessage(rec)); 
     buf.append('\n'); 
     return buf.toString(); 
     } 
     }); 
    logger = Logger.getLogger("TestLog"); 
    logger.addHandler(fh); 
} 
catch (IOException e) { 
    e.printStackTrace(); 
} 
} 

가이드는 도시 새로운 라인에 각각의 새로운 로거 메시지를 인쇄 할 출력 그러나

Mon Feb 28 21:30:54 EST 2005 SEVERE my severe message 
Mon Feb 28 21:30:54 EST 2005 WARNING my warning message 
Mon Feb 28 21:30:54 EST 2005 INFO my info message 

가 새로운 광고 파일에 첨부되고 있지 않거나 그들이 다음의 StringBuffer하고 있습니다 새로운 것이 만들어지고 어떻게 든 사라집니다. 누군가 여기서 문제를 설명 할 수 있습니까? 감사.

내 방법/로거가 정적이 아니므로이 문제의 원인 일 수 있습니까?

+0

해결하려는 문제는 무엇입니까? 출력하고자하는 것이 무엇인지, 로깅 프레임 워크의 기본 기능, 출력 패턴 *을 설정해야하는 것을 출력하십시오. –

+0

파일에 새 행이 추가되지 않고 모든 행이 한 행에 있습니다. 이것은 가독성을위한 문제입니다. – PandaBearSoup

+0

로깅 프레임 워크를 작성하고 있습니까? –

답변

2

나는이 문제를 해결할 수 있었다. 튜토리얼은 다음과 같은 포매터를 구축

문제는이 실제로 사용하는 대신, 파일의 새로운 라인을 추가하지 않는다는 것입니다
fh.setFormatter(new Formatter() { 
public String format(LogRecord rec) { 
    StringBuffer buf = new StringBuffer(1000); 
    buf.append(new java.util.Date()); 
    buf.append(' '); 
    buf.append(rec.getLevel()); 
    buf.append(' '); 
    buf.append(formatMessage(rec)); 
    buf.append('\n'); 
    return buf.toString(); 
    } 
    }); 

당신이

buf.append(System.getProperty("line.separator")); 
를 사용할 필요가
buf.append('\n'); 

내 파일을 읽을 수 있지만 연결된 줄이 엉망이 아닙니다. 희망이 사람을 미래에 도움이됩니다.

1

Filehandler Tutorial

당신이 세척 한 후 메시지를 추가 한 후 처리기를 닫가이 튜토리얼 쇼.

+0

내가 기록 할 때마다 처리기를 플러시하고 응용 프로그램을 닫기 전에 처리기를 닫습니다. – PandaBearSoup

+0

죄송합니다. 귀하의 질문에 대해 완전히 오해했습니다. 나는 새로운 줄뿐만 아니라 텍스트에 전혀 줄이 추가되지 않는다고 생각했다. 그래도 대답을 찾는 멋진 직장! – Zeh