我的 eclipse 中的一个项目中有 2 个 static void 主类,并包含 log4js 来记录其活动。我想知道是否可以在一个项目中导出 2 个日志文件。例如, 在 main.java 类上。我已经包括如下图
假设我有
demo.java 和 launch.java ,都是静态类。例如代码
public class launcher {
private static final Logger LOG = LogManager.getLogger(launcher.class);
public static void main(String[] args) {
LOG.info("log this - launch ");
}
}
public class demo {
private static final Logger LOG = LogManager.getLogger(demo.class);
public static void main(String[] args) {
LOG.info("log this - demo");
}
}
我将触发 launcher.java ,这会将日志文件导出为 result.log
result.log 将包含
line 1 : log this - launcher
但是当我在同一个项目中触发第二个类(demo.java)时,
这将覆盖所有日志,例如
line 1 : log this - demo
我试图实现我运行的每个类,它将附加到最后一行而不是覆盖日志文件。
结果输出应如下图
line 1 : log this - launcher
line 2 : log this - demo
我还在滚动文件中包含了 append = "true" 但它仍然没有追加。使用
我做过的 XML log4j2.xml 配置
<?xml version="1.0" encoding="UTF-8"?>
<Configuration>
<Properties>
<Property name="basePath">../logScript/logs</Property>
<Property name="logPattern">[%-5level] %d{yyyy-MM-dd HH:mm:ss} [%t] %c{1} - %m%n</Property>
<Property name="logPath"></Property>
<Property name="logSize">20 MB</Property>
<property name="date">${date:ddMMyyyy}</property>
</Properties>
<Appenders>
<!-- Console Appender -->
<Console name="console" target="SYSTEM_OUT">
<PatternLayout pattern="%-5p | %d{yyyy-MM-dd HH:mm:ss} | [%t] %C{2} (%F:%L) - %m%n" />
</Console>
<RollingFile name="fileLogger"
fileName="${basePath}/test_tableau_${date}.log"
filePattern="${basePath}/test_tableau.%d{ddMMyyyy}.log"
append = "true"
ignoreExceptions="false">
<PatternLayout>
<pattern>%d{yyyy-MM-dd HH:mm:ss} - %msg%n</pattern>
</PatternLayout>
<!-- Log File size policy max 20mb -->
<Policies>
<TimeBasedTriggeringPolicy interval="2" modulate="false"/>
<SizeBasedTriggeringPolicy size="${logSize}" />
<OnStartupTriggeringPolicy/>
</Policies>
<!-- Auto Delete logs if more than x no of days -->>
<DefaultRolloverStrategy>
<Delete basePath="${basePath}/" maxDepth="3">
<IfFileName
glob="test_tableau.*.log" />
<IfLastModified age="30d" />
</Delete>
</DefaultRolloverStrategy>
</RollingFile>
</Appenders>
<Loggers>
<Logger name="com.test_hyperAPI" level="debug" />
<Root level="all">
<AppenderRef ref="console" />
<AppenderRef ref="fileLogger" />
</Root>
</Loggers>
</Configuration>
我想知道这是否可行,或者我需要采用不同的方法?