So mache ich es. Ich habe eine Systemeigenschaft namens "log.level" festgelegt, dann referenziere ich sie in logback.xml.
Edit: Der Nachteil ist, dass Sie müssen immer "log.level" gesetzt haben. Die Art, wie ich damit umgehe, besteht darin, meine Hauptmethode einzuchecken und sie auf INFO zu setzen, wenn sie nicht bereits eingestellt ist, bevor Sie zuerst Anrufe protokollieren. Dann kann ich in der Befehlszeile überschreiben und habe einen vernünftigen Standard.
Hier ist, wie es in meinem logback.xml aussieht:
<configuration>
<logger name="com.mycompany.project" level="${log.level}" />
<logger name="httpclient" level="WARN" />
<logger name="org.apache" level="WARN" />
<logger name="org.hibernate" level="WARN" />
<logger name="org.hibernate.cfg.AnnotationBinder" level="WARN" />
<logger name="org.hibernate.cfg.annotations" level="WARN" />
<logger name="org.quartz" level="WARN" />
<logger name="org.springframework" level="WARN" />
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%-16thread] %-5level %-35.35logger{30} - %msg%n</pattern>
</encoder>
</appender>
<root level="${log.level:-INFO}">
<appender-ref ref="STDOUT" />
</root>
</configuration>
Es ist geschehen: http://jira.qos.ch/ stöbern/LBCLASSIC-225 Bitte wählen Sie dafür! –
Feature ist "fest" und ist in Logback 1.0.4. –
Um absolut klar zu sein, können Sie jetzt Logback Debuggen mit einer Systemeigenschaft ermöglichen, beispielsweise '-Dlogback.debug = true'. Via http://gordondickens.com/wordpress/2013/07/18/logback-config-showing-debug-level/. –