#java #xml #logging #log4j2
Вопрос:
У меня есть 2 основных класса static void в одном проекте в моем eclipse, и я включил log4j для регистрации его активности. Мне было интересно, могу ли я экспортировать 2 файла журнала в одном проекте. Например , на main.java класс . я включил, как показано ниже
предполагая, что у меня есть
demo.java amp; 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");
}
}
я активирую пусковую установку.java , это приведет к экспорту файла журнала в виде результата.
результат журнала.журнал будет содержать
line 1 : log this - launcher
но когда я вызову второй класс(demo.java) в рамках одного и того же проекта
это перезапишет все журналы, например
line 1 : log this - demo
я пытаюсь добиться того , чтобы каждый класс, который я запускал, добавлялся в последнюю строку вместо перезаписи файла журнала .
Результат должен быть таким, как показано ниже
line 1 : log this - launcher
line 2 : log this - demo
я также включил append = «true» в RollingFile, но он все еще не добавляется. использование приложения учебника в<ФАЙЛ ….. добавить=»истина»> будет работать.
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>
мне было интересно, возможно ли это, или мне нужно будет использовать другой подход?