我一直在主題中解決這個問題。如何將當前客戶端目錄添加到日誌文件名?
我想是這樣的:
String sCurrDir = System.getProperty("user.dir");
int nLastBSlash = sCurrDir.lastIndexOf('/');
System.setProperty("current.folder", sCurrDir.substring(nLastBSlash + 1));
,並增加了以下的log4j.properties:
<appender name="fileAppender" class="org.apache.log4j.RollingFileAppender">
<param name="Threshold" value="DEBUG" />
<param name="append" value="true" />
<param name="maxFileSize" value="10MB" />
<param name="maxBackupIndex" value="50" />
<param name="File" value="./log/${current.folder}-wcss-simulator-${current.date}.log"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss,SSS}\t %-5p\t [%X{ThreadId}]\t %X{MethodName}\t - %m%n" />
</layout>
</appender>
但文件名只能用連字符開始。
Log4j在應用程序啓動時被初始化。如果你真的想要實現這一點,你需要添加你自己的Appender,它擴展了org.apache.log4j.RollingFileAppender。 –
你的問題不明確。首先,你必須清楚地指定log4j2而不僅僅是log4j,因爲這兩個API是非常不同的。您已經在代表當前文件夾的文件參數中有一個DOT(。)。您應該使用log4j2.properties而不是log4j.properties。 – VivekRatanSinha