0
我正在使用來自java 1.6的apache log4j。
我使用exe4j創建exe文件,並將其放入生產文件夾時 -
日誌正在成功創建。現在將exe文件移動到windows服務 - 停止創建日誌文件
,我已經把它變成服務EXE
(在exe4j的檢查「服務」複選框,並與SC命令安裝)
和正在創建日誌文件停止。
是否有解釋/解決方案? 謝謝。
我正在使用來自java 1.6的apache log4j。
我使用exe4j創建exe文件,並將其放入生產文件夾時 -
日誌正在成功創建。現在將exe文件移動到windows服務 - 停止創建日誌文件
,我已經把它變成服務EXE
(在exe4j的檢查「服務」複選框,並與SC命令安裝)
和正在創建日誌文件停止。
是否有解釋/解決方案? 謝謝。
您的服務很可能是作爲無權寫入日誌文件夾的帳戶(LOCAL SERVICE?)運行的。
要檢查正在運行的服務下的帳戶,請右鍵單擊服務面板中的服務,選擇屬性,然後查看LogOn選項卡(對於Windows 7 ...其他Windows版本的確切步驟會有所不同,但想法是一樣的)。
我建議繼續以最少的權限運行你的服務,並修改日誌文件夾的訪問權限,以允許運行該服務的帳戶寫入該文件夾(Principal of Least Privilege)。當然,除了登錄該文件夾,沒有任何東西。
最少特權&&除日誌外沒有任何東西 - 你能解釋兩點嗎? – Jeb
您通常希望運行任何程序所需的最低權限來完成它的工作(添加一個鏈接到我的答案)。如果您正在授予文件夾的寫入權限以便可以寫入日誌,則您不希望在該文件夾中放置任何其他文件,以防止黑客能夠修改它們,如果它們以某種方式阻止寫入您的日誌文件夾。例如,如果您將JAR文件放在日誌寫入的同一文件夾中,則成功的黑客可能會修改您的JAR文件。 –
此外,日誌文件應該寫入Window的應用程序數據目錄之一,而不是程序文件。 –