Порог весенней регистрации не устанавливается logback
Я работаю с Spring (Core / Security / ldap и многое другое) и logback. Но по какой-то причине spring не получает порог логгина, установленный в XML logback Я могу видеть это также, когда я отлаживаю исходный код springs, и я вижу, что
final boolean debug = logger.isDebugEnabled();
Является ложным
Также я хотел бы упомянуть (я не знаю, имеет ли это какое-либо отношение), что регистратор, который использует spring, является:
org.apache.commons.logging.LogFactory
org.apache.commons.logging.Log
И не SLF4j, как я использую
Итак, как я должен включить уровень отладки и принесите журналы в мою конфигурацию SLF4J..
Спасибо
3 ответа:
Spring по умолчанию использует библиотеку журналов Jakarta Commons от Apache. Вам нужно отключить его и вместо этого использовать мост slf4j. Вы должны иметь следующее (среди прочих)
<dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>${spring.version}</version> <exclusions> <exclusion> <groupId>commons-logging</groupId> <artifactId>commons-logging</artifactId> </exclusion> </exclusions> </dependency> <!-- Logging --> <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-core</artifactId> <version>${logback.version}</version> </dependency> <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-classic</artifactId> <version>${logback.version}</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>jcl-over-slf4j</artifactId> <version>${slf4j.version}</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>${slf4j.version}</version> </dependency>
Тогда ваша
logback.xml
или другая конфигурация может установить уровень журнала. Например,<logger name="org.springframework" level="info" additivity="false"> <appender-ref ref="STDOUT" /> </logger>
Добавьте следующую зависимость в ваш pom.xml-файл:
<dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>1.6.6</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>jcl-over-slf4j</artifactId> <version>1.6.6</version> </dependency> <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-core</artifactId> <version>1.0.7</version> </dependency> <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-classic</artifactId> <version>1.0.7</version> </dependency>
И добавьте следующие строки в свой логбэк.xml-файл:
<logger name="org.springframework.web.client.RestTemplate" level="DEBUG" /> <logger name="org.springframework.web.servlet" level="OFF" /> <logger name="org.springframework.beans" level="OFF" /> <logger name="org.springframework.core" level="OFF" /> <logger name="org.springframework.context" level="OFF" /> <logger name="org.springframework.ui" level="OFF" /> <logger name="org.springframework.web.context" level="OFF" /> <logger name="org.springframework.aop" level="OFF" /> <logger name="org.springframework.cache" level="OFF" /> <logger name="org.springframework.jndi" level="OFF" />
Вы можете установить уровень в соответствии с вашим требованием, или если вы хотите отключить весь уровень журнала весны, то просто добавьте одну строку:
<logger name="org.springframework" level="OFF" />
Заменить
commons-logging.jar
наjcl-over-slf4j.jar
. В документации spring это подробно объясняется.