本文轉自:http://www.2cto.com/kf/201302/191149.html
一共兩個java文件,第一個是例子,第二個是配置文件加載類;
LogbackTest.java
/* * To change this template, choose Tools | Templates * and open the template in the editor. */
package logbacktest; import ch.qos.logback.core.joran.spi.JoranException; import java.io.IOException; import org.slf4j.LoggerFactory; /** * * @author Administrator */
public class LogbackTest { /** * @param args the command line arguments */
public static void main(String[] args) throws IOException, JoranException { LogBackConfigLoader.load("logback-log.xml"); org.slf4j.Logger logger = LoggerFactory.getLogger("snail"); logger.debug("Hello"); } }
/* * To change this template, choose Tools | Templates * and open the template in the editor. */
package logbacktest; import java.io.File; import java.io.IOException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import ch.qos.logback.classic.LoggerContext; import ch.qos.logback.classic.joran.JoranConfigurator; import ch.qos.logback.core.joran.spi.JoranException; import ch.qos.logback.core.util.StatusPrinter; /** * Simple Utility class for loading an external config file for logback * @author daniel */
public class LogBackConfigLoader { public static void load (String externalConfigFileLocation) throws IOException, JoranException{ LoggerContext lc = (LoggerContext) LoggerFactory.getILoggerFactory(); File externalConfigFile = new File(externalConfigFileLocation); if(!externalConfigFile.exists()){ throw new IOException("Logback External Config File Parameter does not reference a file that exists"); }else{ if(!externalConfigFile.isFile()){ throw new IOException("Logback External Config File Parameter exists, but does not reference a file"); }else{ if(!externalConfigFile.canRead()){ throw new IOException("Logback External Config File exists and is a file, but cannot be read."); }else{ JoranConfigurator configurator = new JoranConfigurator(); configurator.setContext(lc); lc.reset(); configurator.doConfigure(externalConfigFileLocation); StatusPrinter.printInCaseOfErrorsOrWarnings(lc); } } } } }
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<!-- encoder 默認配置爲PatternLayoutEncoder -->
<encoder>
<pattern>[%-5level] %d{yyyy-MM-dd HH:mm:ss} %msg%n</pattern>
</encoder>
</appender> www.2cto.com <appender name="debug" class="ch.qos.logback.core.FileAppender">
<File>log/debug.log</File>
<Append>true</Append>
<encoder>
<pattern>[%-5level] %d{yyyy-MM-dd HH:mm:ss} %msg%n</pattern>
</encoder>
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>TRACE</level>
</filter>
</appender>
<logger name="snail" level="TRACE" additivity="false">
<appender-ref ref="debug"/>
</logger>
</configuration>