2011-09-02 34 views
0

我有一個servlet應該用log4j記錄消息。在開發環境(Windows + Eclipse + tomcat)下,log4j正在運行。log4j沒有用websphere登錄AIX

當我將servlet部署到生產環境(AIX + websphere)時,它沒有提供任何日誌。

我不知道發生了什麼事。 可能的原因是什麼?在驗證日誌功能在開發環境中工作之後,war文件由eclipse創建。我想在生產中再次部署它之前收集更多線索。

java程序沒有給出任何線索。我查了一下SystemOut.log,並且log4j記錄器被成功初始化,但是他們沒有說任何關於日誌文件的錯誤。

我懷疑原因有二:

1)日誌目錄已經drwxr-XR-X的特權,可能是Java程序並不在那裏創建文件的權限?

2)log4j.properties文件很奇怪。當我通過vi查看AIX時,發現每行結尾後都有一個^ M。可能unix不需要這個回車符。也許這個^ M字符混淆了事物?

編輯:我發現有另一個日誌文件稱爲SystemErr.log。它包含在錯誤消息:

[11年9月1日17:07:43:086 HKT] 00000013 SystemErrř的log4j:ERROR setFile(NULL,真)調用失敗。

[11年9月1日17:07:43:086 HKT] 00000013 SystemErrřjava.io.FileNotFoundException:/bps/log/BpsPdfBill.log (文件訪問PE rmissions不允許指定的操作)

回答

2

它感覺如何是一個servlet? :-)

關於主題:如果您將日誌文件放在WAS解包您的war文件的文件夾之外,誰是所有者?爲了能夠寫入帶有這些權限的目錄,用戶was需要是所有者(並且必須具有訪問父文件夾的權限。)

^M字符是在DOS中存在的換行符/ windows,對於UNIX而言,它們是空格,因此不是問題(只是令人討厭),您可以在打包戰爭歸檔文件之前在Ant構建文件中添加一個任務以刪除換行符。

+0

哦,我的天......只是打錯.....;) – lamwaiman1988

+0

所以,我最好的選擇是設置一個外部目錄的777權限,或者使用war目錄內的目錄作爲日誌目錄? – lamwaiman1988

+0

請參閱我的編輯。謝謝。 – lamwaiman1988