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
<?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>  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值