हम SLF4J का उपयोग करने के लिए देख रहे हैं, लेकिन एक बात हमने पाया था कि आप एक तर्क के रूप स्तर निर्दिष्ट नहीं कर सकते, यानीSLF4J लॉग स्तर एक तर्क के रूप
Logger.log(Level.INFO, "messsage");
आप इस
क्या करना हैlogger.info("message");
यह किसी विधि के माध्यम से सब कुछ पारित करने में सक्षम होने से रोकता है, ताकि आप कक्षा में सभी लॉग संदेशों के लिए अन्य गुणों का सामना कर सकें।
public class Test
{
public Test(SomeObj obj)
{
log(Level.INFO, "message");
}
public void anotherMethod()
{
log(Level.DEBUG, "another message");
}
private void log(Level level, String message)
{
logger.log(level, message + obj.someString());
}
}
क्या SLF4j का उपयोग करके इसे प्राप्त करने का कोई तरीका है?
पास स्ट्रिंग "INFO" और "DEBUG" पास करें, और सही विधि का आह्वान करने के लिए प्रतिबिंब का उपयोग करें - बस मजाक कर रहे हैं! – irreputable
वास्तव में यह बहुत शॉर्ट्स और अफसोसपूर्ण है कि अधिकांश (शायद सभी) समकालीन लॉगर्स अभी भी उस पुरातन प्रतिमान का पालन करते हैं – matanster