我正在使用Logback登录我的应用程序。我正在使用HTMLLayout并且我的msg已经格式化了,但是当logbak打印时msg它没有显示格式化的消息。
我在logback中的代码是:
<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 REQUEST:用户:未知 - 路径:度假村 - 标题:{host = [localhost:8022],connection = [keep-alive],content-length = [795],user-agent = [Mozilla / 5.0( X11; Linux x86_64)AppleWebKit / 537.36(KHTML,如Gecko)Chrome / 60.0.3112.78 Safari / 537.36],cache-control = [no-cache],origin = [chrome-extension:// fhbjgbiflinjbdggehcddcbncdddomop],content-type = [application / json],authorization = [g8mm505be952dc27b7hofgaa0la1],postman-token = [21c3aba1-9629-9352-7d6b-25c2dcbc3eaf],accept = [ / ],accept-encoding = [gzip,deflate, br],accept-language = [pt],authToken = [g8mm505be952dc27b7hofgaa0la1]} -
实体:{“url”:“sdfbgs”,
“视频”:null,
“serviceIds”:null,
“纬度”:“”,
“经度”:“”,
“isPublished”:false}
我从json中删除了一些键值对,这可能会造成混乱而无法理解。我在'HTTP REQUEST:'之后添加了html标记的开头,并且该标记的结尾位于消息的末尾。
答案 0 :(得分:0)
回答我自己的问题。
我使用Java类HTMLLayout完成了它,它扩展了logback库中的HTMLLayout类。
然后在logback.xml文件中给出该类路径。
我跟着this创建了HTMLLayout类。更确切地说,在第61行,在提供的链接中,使用该预标签解决了我的问题。