2010-06-08 4 views
2

Я использую Tomcat 6, и это мой logging.properties:Tomcat6 игнорирует logging.properties частично

handlers = org.apache.juli.FileHandler, java.util.logging.ConsoleHandler 
.level=FINE 

org.apache.catalina.core.ApplicationContext.level = OFF 

org.apache.juli.FileHandler.level = ALL 
org.apache.juli.FileHandler.directory = ${catalina.base}/logs 
org.apache.juli.FileHandler.prefix = mylog. 

java.util.logging.ConsoleHandler.level = FINE 
java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter 

С одной стороны, Tomcat, кажется, читает этот файл, как это правильно сохраняет лог-файлы с префикс «mylog» и печатает только сообщения с уровнем журнала FINE и выше. С другой стороны, он продолжает писать сообщения журнала, как это:

Jun 8, 2010 9:53:30 PM org.apache.catalina.core.ApplicationContext log 
SEVERE: Error writing messages 
ClientAbortException: java.net.SocketException: Broken pipe 

Я на самом деле хотел, чтобы подавить все сообщения журнала из этого класса, так как они затопить мой логфайл, и ошибка не имеет никакого значения для меня. Итак, почему следующая строка игнорируется?

org.apache.catalina.core.ApplicationContext.level = OFF 

Есть ли другой способ подавить выход журнала этого класса?

ответ

2

org.apache.catalina.core.ApplicationContext не является именем регистратора, используемого в ApplicationContext, он использует журнал композита: журнал org.apache.catalina.core.StandardContext.

--edit: Возможно, это потому, что они являются регистраторами контекста. Затем они должны быть настроены по-разному

что-то вроде

org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager].level = INFO 
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager].handlers = \ 

Я не делал этого раньше, я никогда не использовал возможность журналирования TOMCAT, и там не так много info найти

+0

я изменил строку org.apache.catalina.core.StandardContext.level = OFF , но она по-прежнему имеет тот же лог-выход, как и раньше. – Bob

+0

Настройка org.apache.catalina.core.ContainerBase.level = OFF сделала трюк. Благодаря! – Bob

+0

проблем нет, спасибо 2 kschneid тоже – Redlab

2

I думаю, Redlab на правильном пути - обратите внимание, что корень имени регистратора org.apache.catalina.core.ContainerBase, а не org.apache.catalina.core.StandardContext. Метод org.apache.catalina.core.ContainerBase.logName() управляет именем регистратора, и он явно начинается с ContainerBase.class.getName(). Просто уточнить, StandardContext extends ContainerBase.

Смежные вопросы