java logback手动加载配置文件

废话不多说直接上代码:

一共两个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");
    }
}
LogBackConfigLoader.java
/*
 * 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);
				}
			}	
		}
	}
	
}

附上一个简单的logback-log.xml



       
           
           
            [%-5level] %d{yyyy-MM-dd HH:mm:ss}  %msg%n   
           
      
    
        log/debug.log
        true
        
            [%-5level] %d{yyyy-MM-dd HH:mm:ss}  %msg%n
        
        
            TRACE
        
    
     
        
    




你可能感兴趣的:(logback,java,JavaSE,JavaEE)