Java日誌組件logback使用:加載非類路徑下的配置文件並設置定時更新
阿新 • • 發佈:2018-09-09
arc .get courier sprint 日誌配置 microsoft poi con tag
Java日誌組件logback使用:加載非類路徑下的配置文件並設置定時更新
摘自: https://blog.csdn.net/johnson_moon/article/details/78874499
2017年12月22日 16:20:29 閱讀數:868 個人分類: Java日誌版權聲明:本文為博主原創文章,未經博主允許不得轉載。 https://blog.csdn.net/johnson_moon/article/details/78874499logback加載非類路徑下的logback配置文件並設置定時更新
定時重新加載logback配置文件
logback.xml
<configuration scan="true" scanPeriod="30 seconds"> .... </configuration>
- 1
- 2
- 3
配置說明:
- 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">
- 1
- 2
加載非類路徑下的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);
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
剝離代碼為一個類:
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); } }
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
調用
//初始化logback日誌配置文件 LogbackInit.initLogback(System.getProperty("user.dir") + "/conf/logback.xml");
Java日誌組件logback使用:加載非類路徑下的配置文件並設置定時更新