यह एक पुराना विषय है, किसी भी तरह, मेरे दो सेंट, क्योंकि मैं भी अपनी परियोजनाओं में java.util.logging.Logger` का उपयोग करना पसंद करता हूं।
लैम्बडास इस बॉयलरप्लेट को कई कस्टम पैरामीटर के लिए फॉर्मेट एक्सटेंशन को कम या कम अप्रचलित बनाते हैं, जब तक कि आप अपने एप्लिकेशन-व्यापी पुन: उपयोग से लाभ न लें। (मेरे) सरल परिदृश्य में, लॉग संदेश कोड भाग के अनुरूप होते हैं जहां इसे डाला जाता है, इसलिए String.format()
आमतौर पर अधिक आसान और अधिक लचीला होता है।
जावा 8 और लैम्बडास से पहले, Formatter
संदेश निर्माण स्थगित करने की एकमात्र संभावना थी। केवल वैकल्पिक स्तर पर आधारित loggable
चेक से पहले लॉग इन करने के लिए संदेश बनाने के लिए था।
जावा 8 लैम्बडास के साथ, स्ट्रिंग स्वरूपण को loggable
चेक के बाद स्थगित किया जा सकता है, लेकिन फिर भी मूल विधि संदर्भ तक पहुंच के साथ। लैम्ब्डा प्रतिबंधों के कारण, केवल एक छोटा सा नकारात्मक पक्ष है कि सभी एक्सेस किए गए क्षेत्रों को अंतिम होने की आवश्यकता है।
यहाँ एक काफी सरल टुकड़ा:
final String val1 = "lambda expression log message";
final Level level = Level.INFO;
Logger.getGlobal().log(level,() ->
String.format("Hello, I'm a %s, evaluated after %s loggable check.", val1, level)
);
Logger.getGlobal().log(level, new RuntimeException(),() ->
String.format("Hello, I'm a %s with a stack trace, evaluated after %s loggable check.", val1, level)
);
आशा इस आप में से कुछ जो भी चाहते निर्मित प्रवेश :-)
चीयर्स बेन का उपयोग करने में मदद करता है
स्रोत
2016-06-28 10:14:03
पर विचार करें Log4J http://logging.apache.org/log4j/2.x/ – Mirco
@ वर्बोज़-मोड क्यों? जावा उपयोग लॉगिंग जो आवश्यक है और करता है और उपयोग करने में आसान है। जहां तक मैं इसे देखता हूं आपका सुझाव KISS को तोड़ता है (इसे सरल एस रखें ...) सिद्धांत। – Martin