2014-09-03 69 views
0

我正在使用由ESAPI記錄器和log4j.xml文件提供的記錄器進行配置。我成功地能夠打印日誌消息(只是一個平面Java程序與主要方法)。下面是我的代碼如下ESAPI記錄器無法打印方法名稱

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> 
<log4j:configuration threshold="null" 
    xmlns:log4j="http://jakarta.apache.org/log4j/" debug="false"> 
    <appender name="FILE_APPENDER" class="org.apache.log4j.RollingFileAppender"> 
     <param name="File" value="logs/sample.log" /> 
     <param name="Append" value="true" /> 
     <param name="Threshold" value="DEBUG" /> 
     <param name="MaxFileSize" value="5MB" /> 
     <param name="MaxBackupIndex" value="10" /> 
     <layout class="org.apache.log4j.PatternLayout"> 
      <param name="ConversionPattern" value="%d,%-5p, %M, %m%n" /> 
     </layout> 
    </appender> 
    <root> 
     <priority value="DEBUG" /> 
     <appender-ref ref="FILE_APPENDER" /> 
    </root> 
</log4j:configuration> 

我使用這些ESAPI.propertiesvalidation.properties

問題是%M(在圖案設計上使用)不

import org.owasp.esapi.ESAPI; 
import org.owasp.esapi.Logger; 

public class App { 

    static private final Logger logger = ESAPI.getLogger(App.class.getName()); 

    public static void main(String[] args) { 
     logger.error(Logger.SECURITY_FAILURE, "This is error in case of security failure"); 
    } 
} 

我的log4j.xml文件中給出打印正在寫入日誌消息的方法的名稱。 %M總是打印「log」(org.owasp.esapi.Logger中的方法)。我如何在這裏打印方法名稱(在這種情況下是主要的)。我試圖從不同的方法寫日誌,但它仍然打印「日誌」而不是方法名稱。

回答