2017-11-01 7 views
0

Logback을 사용하여 응용 프로그램에 로그인하고 있습니다. HTMLLayout을 사용하고 있는데 msg가 이미 포맷되어 있지만 logbak이 msg를 인쇄하면 형식이 지정된 msg가 표시되지 않습니다.


logback에서 내 코드는 다음과 같습니다Loback이 Html 태그를 승인하지 않습니다.

<appender name="INFO-HTML" 
class="ch.qos.logback.core.rolling.RollingFileAppender"> 
    <filter class="ch.qos.logback.classic.filter.LevelFilter"> 
     <level>INFO</level> 
     <onMatch>ACCEPT</onMatch> 
     <onMismatch>DENY</onMismatch> 
    </filter> 
    <encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder"> 
     <layout class="ch.qos.logback.classic.html.HTMLLayout"> 
      <pattern>%d{yyyy-MM-dd HH:mm:ss}%level%msg</pattern> 
     </layout> 
    </encoder> 
    <file>${TOMCAT_ROOT}/infolog.html</file> 
    <append>true</append> 
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> 
     <!-- rollover daily --> 
     <fileNamePattern>${LOG_FOLDER}/archived/infolog.%d{yyyy-MM-dd}.%i.html</fileNamePattern> 
     <maxHistory>1</maxHistory> 
     <totalSizeCap>1MB</totalSizeCap> 
     <timeBasedFileNamingAndTriggeringPolicy 
     class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> 
      <maxFileSize>1MB</maxFileSize> 
     </timeBasedFileNamingAndTriggeringPolicy> 
    </rollingPolicy> 
</appender> 

메시지 예 :

HTTP 요청 : 사용자 : 알 - 경로 : 리조트 - 헤더 : {호스트 = [로컬 호스트 : 8022, 연결 = Mozilla/5.0 (X11, Linux x86_64) AppleWebKit/537.36 (Gecko와 같은 KHTML) Chrome/60.0.3112.78 Safari/537.36], cache-control [길이 유지], content-length = [795] = [NO 캐시 없음, 원점 = 크롬 확장 : // fhbjgbiflinjbdggehcddcbncdddomop, 콘텐츠 타입 = 애플리케이션/JSON, 인증 = g8mm505be952dc27b7hofgaa0la1, 우편 배달 토큰 = 21c3aba1-9629-93 52-7d6b-25c2dcbc3eaf, 동의 = [/, 동의를 인코딩 = [gzip으로는, 폐, BR, 수용 언어 = [PT], authToken에 = [g8mm505be952dc27b7hofgaa0la1]} -
엔티티 : { "URL" "sdfbgs" "비디오"널 (null), "serviceIds"널 (null), "위도": "", "경도": "", "isPublished"거짓} 나는 몇 제거한


json의 키 - 값 쌍이 이해를 혼란스럽게 만듭니다. 그리고 'HTTP REQUEST :'다음에 html 태그의 시작을 추가하고 그 태그의 끝은 메시지의 끝에 위치합니다.

+0

은 ** 당신이 로그인하려고하는 메시지의 ** 예를 포함하는 질문을 업데이트 할 수있다 "내 MSG는 이미 포맷"? – glytching

+0

예를 들어 질문을 업데이트했습니다. – Vivek

답변

0

내 질문에 답하기.

로그백 라이브러리에서 HTMLLayout 클래스를 확장하는 Java 클래스 HTMLLayout을 사용하여 완성했습니다.

그런 다음 logback.xml 파일의 클래스 경로를 제공.

나는 HTMLLayout은 클래스를 만들 this을 따랐다. 좀 더 정확히 말하자면, 제공된 링크에서 61 번째 줄에 pre 태그가 사용되어 내 문제가 해결되었습니다. 이 상태 질문에