我一直在主题中解决这个问题。如何将当前客户端目录添加到日志文件名?
我想是这样的:
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