2015-08-25 9 views
6

मैं चल रहे स्प्रिंग बूट एप्लिकेशन के लॉग स्तर को बदलना चाहता हूं।स्प्रिंग बूट एप्लिकेशन लॉग स्तर

क्या रनटाइम पर लॉग स्तर बदलना संभव है? अभी मेरे पास मेरे जार में लॉगर कॉन्फ़िगरेशन है।

+1

चेक बाहर इस सवाल का जवाब यहाँ: http: //stackoverflow.com/questions/5448673/slf4j-logback-how-to-configure-loggers-in-runtime – style

उत्तर

13

एप्लिकेशन चल रहा है, जबकि लॉग स्तर बदलना अंतर्निहित लॉगर कार्यान्वयन का हिस्सा है।

आपने लॉगर कार्यान्वयन का उपयोग नहीं किया है, इसलिए मैं मानता हूं कि आप वसंत-बूट-स्टार्टर-लॉगिंग या वसंत-बूट-स्टार्टर-वेब निर्भरताओं के माध्यम से प्रदान किए गए डिफ़ॉल्ट लॉगबैक का उपयोग कर रहे हैं।

application.properties से किसी भी लॉगजर से संबंधित कॉन्फ़िगरेशन को टिप्पणी करें उदा।

#logging.path=logs 
#logging.level.org.springframework.web= INFO 
#logging.level.=INFO 

टैग साथ अपने classpath की जड़ में logback.xml जोड़े http://logback.qos.ch/manual/jmxConfig.html

प्रारंभ देखें आवेदन और खुले JConsole और MBeans टैब पर जाएं। पैकेज ch.qos.logback.classic.JMxConfigurator का चयन करें। डिफ़ॉल्ट रूप से setLoggerLevel ऑपरेशन उदा। org.springframework.web, डीबग

enter image description here

बदलाव तुरंत प्रभावी हो जाएगा। अन्य लॉगर पुस्तकालयों के लिए वसंत बूट उपयोगकर्ता मार्गदर्शिका http://docs.spring.io/spring-boot/docs/current/reference/html/howto-logging.html और लाइब्रेरी विशिष्ट जानकारी उदा। log4j के लिए http://www.sureshpw.com/2012/04/dynamic-logging-with-log4j.html

एक अलग दृष्टिकोण JMX के बिना कदम के बारे में दोहराने और विन्यास का उपयोग है द्रष्टा

+0

आप विस्तृत विवरण के लिए धन्यवाद। मैं logback उपयोग कर रहा हूँ तो मैं दृष्टिकोण आप –

+0

ऊपर इस जवाब रेखांकित किया है और http://docs.spring.io/spring-boot/docs/current/reference/html/howto-logging.html बहुत मदद का पालन कर सकते हैं। एक और विकल्प मैं के बारे में सोच सकते हैं 'LogbackLoggingSystem.setLogLevel (स्ट्रिंग loggerName, LogLevel स्तर) का उपयोग' org.springframework.boot.logging.logback.LogbackLoggingSystem' autowiring और है 'प्रोग्राम के रूप में कार्यावधि में लॉगिंग स्तर बदलने के लिए। इस तरह से, आप इसे चारों ओर अपने स्वयं के बाकी एपीआई का निर्माण और लेकिन यह नियंत्रित कर सकते हैं आप चाहते हैं (बस सुनिश्चित करें कि आप एक उचित तरीके से अंत बिंदु को सुरक्षित बनाने) – burcakulug

+0

@Prabhakar डी - केवल जवाब देने के अन्य लिंक जवाब के बजाय के रूप में इस स्वीकार करें। – Mubin

3

आप बदलना चाहते हैं पहले से चल रहे स्प्रिंग बूट एप्लिकेशन के लॉगिंग स्तर पर आप वसंत-क्लाउड-कॉन्फ़िगरेशन पर एक नज़र डाल सकते हैं। उल्लेख करने के लिए: http://cloud.spring.io/spring-cloud-config/:

स्प्रिंग बादल कॉन्फ़िग एक वितरित प्रणाली में externalized विन्यास के लिए सर्वर और क्लाइंट साइड सहायता प्रदान करता है। कॉन्फ़िगर सर्वर के साथ आपके पास सभी परिवेशों में अनुप्रयोगों के लिए बाहरी गुणों का प्रबंधन करने के लिए एक केंद्रीय स्थान है।

आप केन्द्र config सर्वर में और अपने वर्तमान आवेदन में गुण प्रबंधन कर सकते हैं - फ़ाइल applications.properties (bootstrap.properties जाँच) अपने क्लाइंट अनुप्रयोग में के लिए

spring.application.name=application name 

एक प्रवेश @RefreshScope एनोटेशन का उपयोग बनाने आप आपके एप्लिकेशन रनटाइम को रीफ्रेश करने और अपडेट किए गए लॉगिंग स्तर की संपत्ति को देखने में सक्षम होंगे।

2
स्प्रिंग बूट 1.5 की रिलीज के साथ

, यदि आप अपने बूट आवेदन में प्रवर्तक है आप बॉक्स REST API के बाहर के माध्यम से ऐसा कर सकते हैं।

1.5 एक्ट्यूएटर 'लॉगर्स' नामक एक एंडपॉइंट प्रदान करता है जिसे आप कॉन्फ़िगरेशन देखने के लिए प्राप्त कर सकते हैं, और रनटाइम परिवर्तन करने के लिए POST कर सकते हैं।

पूर्व।

curl -i -X POST -H 'Content-Type: application/json' -d '{"configuredLevel": "DEBUG"}' http://localhost:8080/loggers/org.springframwork 
संबंधित मुद्दे