Можно ли использовать один файл jar log4j в настройке tomcat 5.5, где он может использоваться несколькими веб-приложениями и иметь отдельную регистрацию для каждого веб-приложения?
У меня есть около 8 различных веб-приложений, написанных там, гдеединственное реальное различие между файлами свойств log4j - это имя файла журнала.Однако, если я попытаюсь переместить log4j из каталога WEB-INF / lib webapp в каталог shared / lib tomcat5, у меня возникнут проблемы.
Все файлы свойств в основном выглядят так же, как показано ниже, где я простоустановите file.name, используя System.setProperty ("file.name",) в коде.Не обязательно на самом деле, но я думал об использовании единого файла свойств для всех компонентов.
log4j.rootLogger=DEBUG, LogFile
# stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d [%t] %-5p %c - %m%n
# LogFile
log4j.appender.LogFile=org.apache.log4j.RollingFileAppender
log4j.appender.LogFile.File=${file.name}
log4j.appender.LogFile.layout=org.apache.log4j.PatternLayout
log4j.appender.LogFile.MaxFileSize=500KB
log4j.appender.LogFile.MaxBackupIndex=5
log4j.appender.LogFile.layout.ConversionPattern=%d [%t] %-5p %c - %m%n
В основном для каждого из компонентов я хотел бы войти в отдельный файл, однако проблемав том, что если я включу log4j в каталог shared / lib, какой бы веб-приложение не было доступно первым, он фактически определяет файл журнала, который будет использоваться всеми веб-приложениями.т.е. я не могу использовать отдельную конфигурацию.
Альтернативы, о которых я знаю: поместите log4j в каталог WEB-INF / lib каждого из файлов war, таким образом я получу отдельнуюКонфигурация для каждого веб-приложения.
Измените приведенную выше ссылку "LogFile", чтобы она была специфичной для каждого веб-приложения, так чтобы фактически каждый файл свойств определял отдельную конфигурацию.Это позволяет избежать следующей ошибки: « log4j: ОШИБКА A» org.apache.log4j.RollingFileAppender "объект не может быть назначен переменной" org.apache.log4j.Appender ". "
т.е. используйте что-то вроде следующего:
Для WebApp1
log4j.rootLogger=DEBUG, LogFileWebapp1
# stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d [%t] %-5p %c - %m%n
# LogFile
log4j.appender.LogFileWebapp1=org.apache.log4j.RollingFileAppender
log4j.appender.LogFileWebapp1.File=${file.name}
log4j.appender.LogFileWebapp1.layout=org.apache.log4j.PatternLayout
log4j.appender.LogFileWebapp1.MaxFileSize=500KB
log4j.appender.LogFileWebapp1.MaxBackupIndex=5
log4j.appender.LogFileWebapp1.layout.ConversionPattern=%d [%t] %-5p %c - %m%n
Для WebApp2
log4j.rootLogger=DEBUG, LogFileWebapp2
# stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d [%t] %-5p %c - %m%n
# LogFile
log4j.appender.LogFileWebapp2=org.apache.log4j.RollingFileAppender
log4j.appender.LogFileWebapp2.File=${file.name}
log4j.appender.LogFileWebapp2.layout=org.apache.log4j.PatternLayout
log4j.appender.LogFileWebapp2.MaxFileSize=500KB
log4j.appender.LogFileWebapp2.MaxBackupIndex=5
log4j.appender.LogFileWebapp2.layout.ConversionPattern=%d [%t] %-5p %c - %m%n
Я бы предпочел придерживаться макета первого файла свойстви сохраняйте его как можно более похожим между веб-приложениями, а также не стоит включать отдельную копию log4j в каждое из веб-приложений.В идеале я надеялся просто использовать символическую ссылку из общего каталога lib tomcat на системную копию log4j.
Есть ли другие варианты?