zoukankan      html  css  js  c++  java
  • 日志处理(三) 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> 
  • 相关阅读:
    文件的基本操作
    ps工作界面
    HDU 6300
    HDU 6298
    HDU 2037
    HDU 2036
    Tesseract OCR
    What is the difference between position: static,relative,absolute,fixed
    How to Call a synchronize function asynchronizly in C#
    WCF note1
  • 原文地址:https://www.cnblogs.com/Jtianlin/p/4517836.html
Copyright © 2011-2022 走看看