日誌處理(三) logback 手動加載(轉)

本文轉自: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"); } } 

 

 
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> 
相關文章
相關標籤/搜索