mac中的文件路徑和windows中的不同?
日志配置中,同樣是存儲在/system_app.log文件中,若路徑存在而文件不存在就會新建文件。在win中沒有問題,可以正常運行;在mac/linux中就有FileNotFoundException。原因在于兩類不同系統的文件系統和權限管理不同。
在日志配置中用到DailyRollingFileAppender將日志存儲為按天分割的文件,使用到了環境變量進行統一配置:
log4j.xml ${logger.path}/app.log這里有一個問題,環境變量配置我一直沒有找到合適的方法讓這個配置文件讀取環境變量(如果有解決方案歡迎指教)。我的是mac系統,每次啟動時都會有錯誤信息,提示FileNotFound: /app.log (Read-only file system)。雖然項目會正常執行,但日志只能在控制臺查看,無法存儲成為文件,且idea的控制臺有行數限制,老的日志會被刷掉,無法查看。
下意識問其他小伙伴,他們都表示windows系統中沒有問題,都沒有設置環境變量,也不太清楚怎么設置。在我迷茫的時候,一個用win的小伙伴說了一句話:“我也沒設置環境變量,日志不就在我D盤根目錄嘛”。這讓我有了大膽的猜想:“莫非是文件系統不同?”
首先查看錯誤日志,提到文件路徑是/app.log ,錯誤信息是(Read-only file system)。這很正常:mac屬于unix系統,文件系統和權限控制和linux相似:
linux系統,普通用戶無法訪問其他用戶目錄和根目錄(除非使用sudo)
mac OS 10.14及之前,目錄結構為經典的UNIX目錄樹結構。
10.15 catalina 將磁盤容器分為了系統盤和數據盤,即使root權限也無法在系統盤創建/修改文件。管理員用戶可以直接查看目錄樹,可以使用sudo在公共數據目錄中創建/修改文件;普通用戶可以查看目錄樹,無法使用sudo。無法訪問其他用戶的私密文件夾。
10.15在這里有一個讓我困惑的操作:普通用戶雖然無法查看管理員私密的文件夾(如Desktop, Document等),但可以在管理員用戶根目錄下創建的文件中進行 新建/修改/刪除 操作。