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.properties和validation.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中的方法)。我如何在這裏打印方法名稱(在這種情況下是主要的)。我試圖從不同的方法寫日誌,但它仍然打印「日誌」而不是方法名稱。