В linux имя пользователя задается переменной окружения $ USER.log4j создание динамического имени файла на основе того, кто зарегистрирован в linux
Скажем, у меня есть следующие LOG4J CONFIG
log4j.rootLogger=info, infoApp
# this should contain only INFO messages
log4j.appender.infoApp=org.apache.log4j.RollingFileAppender
log4j.appender.infoApp.File=/mylogs/logs/app/app.info.log
log4j.appender.infoApp.layout=org.apache.log4j.PatternLayout
log4j.appender.infoApp.layout.ConversionPattern=%d [%-5p] %t -- %m%n
log4j.appender.infoApp.MaxFileSize=10MB
log4j.appender.infoApp.MaxBackupIndex=6
Как я могу динамически добавлять имя пользователя для приложения, которое использует этот файл в имени файла, так что журналы user1 идут в/mylogs/журналы/приложение/приложения Журналы .user1.info.log и user2 входят в /mylogs/logs/app/app.user2.info.log?
Я использую log4j 1.2.14, но при необходимости может обновить. Log4j также используется другими библиотеками, исходный код которых я не хочу касаться. Мое приложение является автономным Java-приложением.
Если я изменяю имя файла в config на /mylogs/logs/app/app.${env.USER}.info.log (при условии, что я обновляюсь до log4j 2.3), он заменяет время развертывания на изменение файл log4j.properties. Я хочу, чтобы пользовательская подстановка выполнялась во время выполнения, поэтому одна и та же установка может использоваться несколькими пользователями.
Спасибо!
Спасибо за комментарий и извините за задержку. Я решил проблему, используя журнал, который имеет эту функцию в виде переменной $ USER (переменная среды, установленная в Linux для пользователя). благодаря – serverman