Log4j2 : Запишите 2 статических класса в один файл журнала с добавлением = «true»

#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>
 

мне было интересно, возможно ли это, или мне нужно будет использовать другой подход?