Java日誌組件logback使用:加載非類路徑下的配置文件並設置定時更新

logback加載非類路徑下的logback配置文件並設置定時更新

定時重新加載logback配置文件

logback.xml

<configuration  scan="true" scanPeriod="30 seconds">  
....  
</configuration>

配置說明:
- scan: 設置爲true,代表會在指定的時間內重新加載日誌配置文件
- scanPeriod:當scan=true時,日誌配置文件會在指定的單位時間內重新加載,默認是每分鐘會重載一次。
- scanPeriod的配置說明:
時間單位:milliseconds, seconds, minutes , hours

eg:

5分鐘: <configuration  scan="true" scanPeriod="5 minutes">
1小時:  <configuration  scan="true" scanPeriod="1 hours">

加載非類路徑下的logback.xml配置文件

主方法中調用如下代碼:

//logback.xml的路徑名
File file = new File(System.getProperty("user.dir") + "/conf/logback.xml");
LoggerContext loggerContext = (LoggerContext) LoggerFactory.getILoggerFactory();
JoranConfigurator joranConfigurator = new JoranConfigurator();
joranConfigurator.setContext(loggerContext);
loggerContext.reset();
try {
    joranConfigurator.doConfigure(file);
} catch (Exception e) {
    System.out.println(String.format("Load logback config file error. Message: ", e.getMessage()));
}
StatusPrinter.printInCaseOfErrorsOrWarnings(loggerContext);

剝離代碼爲一個類:


import ch.qos.logback.classic.LoggerContext;
import ch.qos.logback.classic.joran.JoranConfigurator;
import ch.qos.logback.core.util.StatusPrinter;
import org.slf4j.LoggerFactory;

import java.io.File;

/**
 * Created by xuyh at 2017/11/20 14:32.
 */
public class LogbackInit {
    /**
     * 設置logback.xml配置文件並加載
     *
     * @param configFilepathName 配置文件路徑名
     */
    public static void initLogback(String configFilepathName) {
        File file = new File(configFilepathName);
        LoggerContext loggerContext = (LoggerContext) LoggerFactory.getILoggerFactory();
        JoranConfigurator joranConfigurator = new JoranConfigurator();
        joranConfigurator.setContext(loggerContext);
        loggerContext.reset();
        try {
            joranConfigurator.doConfigure(file);
        } catch (Exception e) {
            System.out.println(String.format("Load logback config file error. Message: ", e.getMessage()));
        }
        StatusPrinter.printInCaseOfErrorsOrWarnings(loggerContext);
    }
}

調用

//初始化logback日誌配置文件
LogbackInit.initLogback(System.getProperty("user.dir") + "/conf/logback.xml");
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章