1. 程式人生 > >Java日誌組件logback使用:加載非類路徑下的配置文件並設置定時更新

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

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 標簽: javalogback日誌配置文件logback-xm 個人分類: Java日誌版權聲明:本文為博主原創文章,未經博主允許不得轉載。 https://blog.csdn.net/johnson_moon/article/details/78874499

logback加載非類路徑下的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使用:加載非類路徑下的配置文件並設置定時更新