У меня есть многомодульный проект maven со структурой, похожей на: (https://drive.google.com/file/d/1-TexFkNoAwhYbHnyoxhyQJ6W7CHOBBzZ/view)
У меня есть следующий файл log4j2.properties:
property.eventLogPath = src/main/resources/log/events/
appender.eventLogger.type = RollingFile
appender.eventLogger.name = eventLogger
appender.eventLogger.fileName= ${eventLogPath}/app.log
appender.eventLogger.filePattern= ${eventLogPath}/app_%d{yyyyMMdd}.log.gz
appender.eventLogger.layout.type = PatternLayout
appender.eventLogger.layout.pattern = %d{yyyy-MM-dd HH:mm:ss.SSS} %level
[%t] [%c] [%M] [%l] - %msg%n
appender.eventLogger.policies.type = Policies
# Rotate log file each day and keep 30 days worth
appender.eventLogger.policies.time.type = TimeBasedTriggeringPolicy
appender.eventLogger.policies.time.interval = 1
appender.eventLogger.policies.time.modulate = true
appender.eventLogger.strategy.type = DefaultRolloverStrategy
logger.event.name = event
logger.event.level = info
logger.event.additivity = false
logger.event.appenderRef.eventLogger.ref = eventLogger
rootLogger.level = error
rootLogger.additivity = false
У меня есть следующий метод:
private static Logger eventLogger = LogManager.getLogger("event");
public static void sendLog() {
eventLogger.info("event");
}
Когда я выполняю этот метод в моих основных / java и моих пакетах test / java, он генерирует log dir в двух разных местах. Я пытаюсь выполнить этот фрагмент кода в main / java и test /java-пакеты для получения пользователя dir
System.out.println(System.getProperty("user.dir"));
И для основного пакета он определяет:
C:\Users\dev\IdeaProjects\multimodules\
Для тестового пакета:
C:\Users\dev\IdeaProjects\multimodules\users
Возможно, это проблема в конфигурации mavenно я не могу изменить любой конфиг в maven. И мой вопрос заключается в следующем:
Можно ли определить некоторый относительный путь в property.eventLogPath в log4j2.properties, который будет одинаковым для всех пакетов.это путь будет относительно папки ресурсов или файла log4j. Или это может быть абсолютный путь, но гибкий для разных ОС, например:
property.eventLogPath = ${sys:user.dir}/src/main/resources/log/events/