1
我使用log4j的使用SLF4J和我有以下情況:使用log4j從基類和擴展類中記錄?
package x.y.z.base;
public class FTPOperationsBase {
private final Logger log = LoggerFactory.getLogger(FTPOperationsBase.class);
protected FTPClient ftp;
// some more fields
public void connect() {
...
// log all connect exceptions
}
public void disconnect() {
...
// log all disconnect exceptions
};
}
由於可以看出,封裝x.y.z.base。現在我有幾個擴展這個基類的類(這些類目前在x.y.z.classA,x.y.z.clasB,...等包中)。
我想單獨的日誌文件爲這些類,因爲它們作爲單獨的模塊。但我也想要以某種方式將日誌從基類放到這些單獨的日誌中,具體取決於正在使用哪個類,即如果只有一個子類正在執行,我不希望所有日誌中都有日誌形式基類。例如,如果我已經擴展類:
public class FTPExtendedClass1
extends FTPOperationsBase {
public void doSomething() {...}
}
,使下面的代碼序列:
FTPExtendedClass1 obj1 = new FTPExtendedClass1();
obj1.connect();
obj1.doSomething();
obj1.disconnect();
我想有日誌文件對於這種情況如下:
- 來自connect的可能信息/警告/錯誤()
- doSomething()的可能信息/警告/錯誤
- 可能方式/警告/從斷開錯誤()
這應該是所有擴展類,其中doSomething的()是特定於類的方法的情況。任何方式來組織軟件包/爲此行爲配置log4j?
謝謝。
那麼,正如你所說,這不是我正在尋找的解決方案,我已經知道這種配置。我想我只是通過基類方法聲明來傳播異常,或者傳遞記錄器引用,它們都可以工作。無論如何,+1需要時間來回答問題;) – Less