2015-01-15 1688 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>