日常咱們在使用logback做爲日誌框架的時候,若是咱們不指定日誌的絕對路徑,就會在咱們的當前目錄(user.dir)下面生成日誌文件,日常咱們在開發階段只要制定一個log目錄就行了,可是若是在生產環境,若是不是在jar所在的路徑啓動就會致使生產的文件位置不肯定,因此咱們能夠經過在jar 啓動的時候在初始化類的地方制定一個系統變量。而後在logback 的配置文件裏面加載這個變量就好。這樣不管在哪裏啓動咱們的程序,程序都會在jar 所在的目錄生成一個日誌目錄java
private static Logger logger; static { String path = Run.class.getProtectionDomain().getCodeSource().getLocation().getPath(); File file = new File(path); String parent = file.getParent(); System.setProperty("app.dir", parent); //logger 調用必定要在set app.dir 後面,在前面就會致使 app.dir的參數沒有生效 public static void main(String[] args) { }
<!-- app.dir 爲app 可執行jar 所在路徑--> <property name="LOG_HOME" value="${app.dir}/log"/>