मेरे पास निम्नलिखित सिस्टम (डिक्टेड) एक सिस्टम में कक्षा है जिस पर मैं काम कर रहा हूं और FindbugsSE_BAD_FIELD चेतावनी उत्पन्न कर रहा है और मैं समझने की कोशिश कर रहा हूं कि यह क्यों कहेंगे कि इससे पहले कि मैंने इसे ठीक किया, होगा। कारण मैं उलझन में हूं क्योंकि वर्णन यह इंगित करता है कि मैंने वर्ग में अन्य गैर-धारावाहिक उदाहरण फ़ील्ड का उपयोग नहीं किया था, लेकिन bar.model.Foo भी serializable नहीं है और उसी तरह से उपयोग किया जाता है (जहां तक मैं बता सकते हैं) लेकिन Findbugs इसके लिए कोई चेतावनी उत्पन्न नहीं करता है।एक Serializable जावा क्लास में लॉगर का उपयोग करने का सही तरीका क्या है?
import bar.model.Foo;
import java.io.File;
import java.io.Serializable;
import java.util.List;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class Demo implements Serializable {
private final Logger logger = LoggerFactory.getLogger(this.getClass());
private final File file;
private final List<Foo> originalFoos;
private Integer count;
private int primitive = 0;
public Demo() {
for (Foo foo : originalFoos) {
this.logger.debug(...);
}
}
...
}
एक समाधान पर मेरी प्रारंभिक लाल कारखाने से एक लकड़हारा संदर्भ मैं इसका इस्तेमाल सही रूप में प्राप्त करने के लिए है:
public DispositionFile() {
Logger logger = LoggerFactory.getLogger(this.getClass());
for (Foo foo : originalFoos) {
this.logger.debug(...);
}
}
कि हालांकि विशेष रूप से प्रभावी नहीं लगता है,।
विचार?
Ceki ने बताया है कि के लिए logback getLogger (...) विधि तेजी से "पर्याप्त" जब जरूरत के नाम से जाना जाता है, और न सिर्फ इस्तेमाल किया एक स्थिर क्षेत्र में। –
[लॉगर] (http://www.jcabi.com/jcabi-log/apidocs-0.7.7/com/jcabi/log/Logger.html) [jcabi-log] की कक्षा पर एक नज़र डालें (http://www.jcabi.com/jcabi-log/), जो एसएलएफ 4 जे – yegor256
के आसपास एक रैपर है, एसएलएफ 1.5.3 या बाद में उपयोग करते समय [सेकी का जवाब] (http://stackoverflow.com/a/2818849/606662) पढ़ें। –