2013-03-05 3 views
2

Apache Log4j 파일의 출력을 편집하는 데 도움이 필요합니다. html 레이아웃을 사용하여 생성 된 로그를 저장하고 있습니다. 여기 내 log4j.properties 코드는 다음과 같습니다HTML 사용자 정의 형식으로 Log4j.properties를 사용하여 로깅

log4j.rootLogger = DEBUG, FILEALL, FILEMAIN 

log4j.appender.FILEMAIN=org.apache.log4j.FileAppender 
log4j.appender.FILEMAIN.File=${logfileall.name} 
log4j.appender.FILEMAIN.layout=org.apache.log4j.HTMLLayout 
log4j.appender.FILEMAIN.Threshold=DEBUG 

log4j.appender.FILEALL=org.apache.log4j.FileAppender 
log4j.appender.FILEALL.File=${logfilemain.name} 
log4j.appender.FILEALL.layout=org.apache.log4j.HTMLLayout 
log4j.appender.FILEALL.Threshold=WARN 

이 내가 출력 형식을 변경하는 방법에 대한 혼란 스러워요이 enter image description here

같은 로그 파일을 만듭니다.

또한 가능하면

, 나는에 카테고리 이름을 변경하고 싶습니다 ss.S 형식과 나는 스레드 열을 원하지 않는 : mm :

나는 형식 HH의 타임 스탬프를 표시하기 위해 시간 열을 원하는 classpath와 같은 것. 내 Log4j.properties 위의 일들이

답변

3

에만 org.apache.log4j.HTMLLayout에 대해 다음 옵션을 변경할 수 있습니다 끝내기 위해 파일을 수정하는 방법

도와주세요 :

log4j.appender.FILE.layout.Title=HTML Layout Demo 
log4j.appender.FILE.layout.LocationInfo=true 

을 그건 그렇고을, 당신은 할 수 (모든 행사에서 새 행을 HTML 코드를 얻을이 class을 확장하고 방법을

public String format(LoggingEvent) 
public String getHeader() 

첫 번째 메소드를 오버라이드 (override) 전 n 테이블). 두 번째 방법은 헤더의 (DOCTYPE 선언부터 표 머리글 행까지, 예 : <thead>...</thead><tbody>)의 HTML을 가져옵니다.

0

기본 레이아웃을 지정하는 맞춤 패턴을 사용하여 HTML 레이아웃을 패턴 레이아웃으로 바꿔야합니다.

0

Paul Vargas가 제안한 것처럼 org.apache.log4j.HTMLLayout을 확장하는 맞춤 레이아웃을 만들어야합니다.

... 
sbuf.append("<td>"); 
sbuf.append(event.timeStamp - LoggingEvent.getStartTime()); 
sbuf.append("</td>" + Layout.LINE_SEP); 

포맷이 스레드 수행이 방법 :

... 
String escapedThread = Transform.escapeTags(event.getThreadName()); 
sbuf.append("<td title=\"" + escapedThread + " thread\">"); 
sbuf.append(escapedThread); 
sbuf.append("</td>" + Layout.LINE_SEP); 
... 

code of the HTMLLayout 내부에서 찾고, 당신은 그 시간 열이 서식을 허용하지 않는 format 방법 내부를 볼 것

관련 문제