как сделать отдельные логи кота для одной войны - PullRequest
2 голосов
/ 13 октября 2011

Я использую одну войну, которая используется по-разному в зависимости от ресурсов (т. Е. URL, по которому она вызывается).

Доступ к ресурсам осуществляется за пределами веб-приложений.

Мне нужно вести отдельные журналы, чтобы все журналы можно было обслуживать отдельно. Для этого мне нужно иметь папку журналов, например, папку ресурсов вне веб-приложений.

1 Ответ

0 голосов
/ 13 октября 2011

Хорошо, есть способ сделать это, используя log4j.Я не говорю, что это лучший способ, но этот метод должен работать.Вот отправная точка.

Загрузите log4j.jar и вставьте его в свой WEB-INF/lib

Имейте log4j.properties в WEB-INF/classes.Это будет выглядеть так:

log4j.rootLogger=DEBUG, console

log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=%d{MM-dd@HH:mm:ss} %-5p %c{1}]: %m%n


log4j.logger.myoldsitelogger=DEBUG,myoldsite

# myoldsite writes to file
log4j.appender.myoldsite=org.apache.log4j.RollingFileAppender
log4j.appender.myoldsite.File=${catalina.base}/logs/tomcatlog4j.log
log4j.appender.myoldsite.MaxFileSize=100KB
log4j.appender.myoldsite.layout=org.apache.log4j.PatternLayout
log4j.appender.myoldsite.layout.ConversionPattern=%d{MM-dd@HH:mm:ss} %-5p %c{1}]: %m%n

log4j.logger.mynewsitelogger=DEBUG,mynewsite


# mynewsite writes to file
log4j.appender.mynewsite=org.apache.log4j.RollingFileAppender
log4j.appender.mynewsite.File=${catalina.base}/logs/tomcatlog4j_newsite.log
log4j.appender.mynewsite.MaxFileSize=100KB
log4j.appender.mynewsite.layout=org.apache.log4j.PatternLayout
log4j.appender.mynewsite.layout.ConversionPattern=%d{MM-dd@HH:mm:ss} %-5p %c{1}]: %m%n

Теперь из вашего приложения найдите дескриптор нужного регистратора

Logger logger = Logger.getLogger("myoldsitelogger");
Logger logger2 = Logger.getLogger("mynewsitelogger");

if(request.getParameter("oldsite") != null)
    logger.info("In my.jsp from oldsite");
else
    logger2.info("In my.jsp from newsite");

В папке журналов у вас должно быть 2 файла журнала с именем tomcatlog4j.log и tomcatlog4j_newsite.log с правильными сообщениями.

Может быть способ сделать это в Tomcat даже без log4j, но у меня пока нет рабочего образца

...