Можете ли вы заставить файл Tomcat 6 stdout.log вести себя как log4j DailyRollingFileAppender? - PullRequest
3 голосов
/ 06 января 2010

Мы используем установку Tomcat 6. для Windows. По умолчанию вывод log4j для нашего приложения идет в файл $ {catalina.base} /logs/stdout_.log. Этот файл журнала переворачивается только при перезапуске Tomcat, и имя файла всегда включает дату.

Я бы предпочел, чтобы он вел себя как DailyRollingFileAppender, где он переименовывает файл, когда он переворачивается ... таким образом, я могу просто открыть Notepad ++ и посмотреть сегодняшние журналы, поскольку Notepad ++ будет помнить, что я вчера открыл этот же файл. :)

Я знаю, что я могу просто создать другого appender в log4j, но в итоге я получу stdout.log и другой файл журнала, и я боюсь, что при регистрации в обоих файлах будет незначительное снижение производительности. Я попытался добавить swallowOutput = true в мой context.xml, но я все еще получаю все записи в stdout.log. Есть идеи?

Ответы [ 2 ]

0 голосов
/ 30 ноября 2010

Наибольшее снижение производительности происходит при подготовке объектов, которые вы хотите зарегистрировать (вы знаете, когда вы делаете logger.info(" operating on " + myObject.toString + " bla bla bla" ), тогда выполнение myObject.toString() имеет наибольшую стоимость). Если у вас уже есть, чем войти в файл, это не проблема. И log4j действительно хорошо сбалансирован и оптимизирован, он использует буферы для записи журналов, поэтому он не делает слишком частых обращений к файловой системе.

Просто создайте другого appender, у вас будет отличия от журналов tomcat и журналов ваших приложений. Сколько логов у вас есть? А 1 ГБ в день или больше, что вы боитесь потери производительности? Не принимайте что-либо перед тестированием. Просто настройте и сделайте какой-нибудь тест производительности.

0 голосов
/ 06 января 2010

Вы пробовали шаги, описанные в Вход в Tomcat ?Если вы выполните шаги, вы получите log4j.properties в каталоге lib, который вы можете настроить по своему вкусу.

...