log4j2 Динамическое имя файла журнала в Java - PullRequest
0 голосов
/ 24 мая 2018

У меня простой вопрос.

Как динамически указывать имя файла журнала из кода?

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="warn" name="MyApp" packages="">

<Appenders>
    <RollingFile name="RollingFile" fileName="${logfilename}.log"
                 filePattern="logs/$${date:yyyy-MM}/app-%d{yyyy-MM-dd-HH}-%i.log.gz">
        <PatternLayout>
            <Pattern>%d %p %c{1.} [%t] %m%n</Pattern>
        </PatternLayout>
        <Policies>
            <TimeBasedTriggeringPolicy interval="6" modulate="true"/>
            <SizeBasedTriggeringPolicy size="250 MB"/>
        </Policies>
    </RollingFile>
</Appenders>

<Loggers>
    <Root level="error">
        <AppenderRef ref="RollingFile"/>
    </Root>
</Loggers>

Здесь имя файла logs / app.log .

  • Как сделать его динамичным с добавлением даты и времени в имени файла?Хотя шаблон применяется, но он не работает.
  • Здесь logs - это каталог, который автоматически создается библиотекой log4j, может ли он быть динамическим?

EDIT В параметре fileName я поместил ${logfilename}.log и установил системное свойство, как показано ниже:

System.setProperty("logfilename", "a_cool_logname");

Теперь он создает файл с именем ${logfilename}.log, который определенно не требуется.

Спасибо

1 Ответ

0 голосов
/ 24 мая 2018

** Файл свойств выглядит следующим образом **

    log4j.rootLogger=DEBUG, FA


#Console Appender WE WRE NOT USING IT
log4j.appender.CA=org.apache.log4j.ConsoleAppender
log4j.appender.CA.layout=org.apache.log4j.PatternLayout
log4j.appender.CA.layout.ConversionPattern=%d{dd MM yy HH:mm} %-5p  %m%n


#File Appender
log4j.appender.FA=org.apache.log4j.FileAppender
log4j.appender.FA.File=${fName}
#log4j.appender.FA.MaxFileSize=5MB
#log4j.appender.FA.MaxBackupIndex=3
log4j.appender.FA.layout=org.apache.log4j.PatternLayout
log4j.appender.FA.layout.ConversionPattern=%d{dd MM yy HH:mm} %8p  %10m%n 

# Set the logger level of File Appender to WARN
log4j.appender.FA.Threshold = INFO
log4j.appender.FA.Threshold = DEBUG

** И установите свойства в JAVA **

System.setProperty("fName", "d:\\siemens\\" + getDateTime() + c.getSimpleName() +".log");
        PropertyConfigurator.configure("log4j.properties");

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...