2015-01-15 50 views
3

我使用Logback,並且在登錄用戶參數時需要避免CRLF(回車和換行)。
我試圖添加我的類,它擴展了ClassicConverter,在靜態地圖PatternLayout.defaultConverterMap但它沒有工作。如何在Logback中避免CRLF(回車和換行) - CWE 117

謝謝

+0

哪裏CRLF來自哪裏?你如何記錄這個?你的模式是什麼樣子? – 2015-01-15 17:45:30

回答

1

logback documentation

自定義佈局描述你應該創建一個自定義佈局:

package com.foo.bar; 

import ch.qos.logback.classic.PatternLayout; 
import ch.qos.logback.classic.spi.ILoggingEvent; 

public class RemoveCRLFLayout extends PatternLayout { 

    @Override 
    public String doLayout(ILoggingEvent event) { 
     return super.doLayout(event).replaceAll("(\\r|\\n)", ""); 
    } 

} 

的logback配置:

<encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder"> 
    <layout class="com.foo.bar.RemoveCRLFLayout"> 
     <pattern>%d %t %-5p %logger{16} - %m%n</pattern> 
    </layout> 
</encoder>