जवाबों:
अपडेट: स्प्रिंग बूट v1.2.0 के साथ शुरू। कृपया, सेटिंग में application.properties
या application.yml
लागू करें। संदर्भ गाइड के लॉग स्तर अनुभाग देखें ।
logging.level.org.springframework.web: DEBUG
logging.level.org.hibernate: ERROR
स्प्रिंग बूट के पुराने संस्करणों के लिए आप नहीं कर सकते। आपको बस इसके लिए अपने लॉगिंग फ्रेमवर्क (log4j, logback) के लिए सामान्य कॉन्फ़िगरेशन का उपयोग करना होगा। निर्देशिका के लिए उपयुक्त विन्यास फाइल ( log4j.xml
या logback.xml
) जोड़ें src/main/resources
और अपनी पसंद के अनुसार कॉन्फ़िगर करें।
आप --debug
कमांड-लाइन से एप्लिकेशन शुरू करते समय निर्दिष्ट करके डिबग लॉगिंग को सक्षम कर सकते हैं ।
स्प्रिंग बूट, लॉगबैक के लिए कुछ डिफॉल्ट, रंग आदि को कॉन्फ़िगर करने के लिए एक अच्छा प्रारंभिक बिंदु भी प्रदान करता है। आधार। xml फ़ाइल जिसे आप बस अपनी लॉगबैक। Xml फ़ाइल में शामिल कर सकते हैं। (यह स्प्रिंग बूट में डिफ़ॉल्ट logback.xml से भी अनुशंसित है ।
<include resource="org/springframework/boot/logging/logback/base.xml"/>
application.properties
या application.yml
लागू करते हैं, के रूप में रिचर्ड ने जवाब दिया ( :
या =
मुद्दा --- --- बृहदान्त्र मेरे लिए काम करने लगता है)।
आप अपने application.properties का उपयोग करके ऐसा कर सकते हैं।
logging.level.=ERROR
-> रूट लॉगिंग स्तर को त्रुटि पर सेट करता है
...
logging.level.=DEBUG
-> रूट लॉगिंग स्तर को DEBUG में
logging.file=${java.io.tmpdir}/myapp.log
सेट करता है -> TMPDIR / myapp.log के लिए पूर्ण लॉग फ़ाइल पथ
सेट करता है। प्रोफ़ाइल का उपयोग करके लॉगिंग के संबंध में आवेदन का एक डिफ़ॉल्ट डिफ़ॉल्ट सेट होगा: application.properties:
spring.application.name=<your app name here>
logging.level.=ERROR
logging.file=${java.io.tmpdir}/${spring.application.name}.log
application-dev.properties:
logging.level.=DEBUG
logging.file=
जब आप अपने पसंदीदा आईडीई के अंदर विकसित होते हैं तो आप -Dspring.profiles.active=dev
अपने ऐप के रन / डिबग कॉन्फ़िगरेशन के लिए वीएम तर्क के रूप में जोड़ते हैं ।
यह आपको उत्पादन में लॉगिंग में त्रुटि देगा और लॉग फाइल में आउटपुट लिखने के बिना विकास के दौरान लॉगिंग डिबग करेगा। यह विकास के दौरान प्रदर्शन में सुधार करेगा (और ऑपरेशन के कुछ घंटों में एसएसडी ड्राइव को बचाएगा;)।
logging.level.:DEBUG
spring-boot 1.4.0
: logging.level.=DEBUG
क्या आवेदन शुरू करने में विफल होगा, और त्रुटि प्राप्त होगी:java.lang.ClassCircularityError: java/util/logging/LogRecord
logging.level.
लिए बस एक सुविधा वाक्यविन्यास शॉर्टकट है logging.level.root
, जिसे एक टाइपो के साथ भ्रमित होने के लिए (1) कम संभावना के रूप में पसंद किया जा सकता है, (2) संभावित रूप से अधिक स्पष्ट, और (3) =
असाइनमेंट साइन के साथ काम करना , जो अधिक समग्र स्थिरता प्रदान करता है। कॉन्फ़िगरेशन फ़ाइल के लिए।
रूट लॉगिंग स्तर सेट करने का उचित तरीका संपत्ति का उपयोग कर रहा है logging.level.root
। दस्तावेज़ीकरण देखें , जिसे इस सवाल के मूल रूप से पूछे जाने के बाद से अपडेट किया गया है।
उदाहरण:
logging.level.root=WARN
मान लीजिए कि आपके आवेदन में पैकेज का नाम है com.company.myproject
। फिर आप अपने प्रोजेक्ट के अंदर कक्षाओं के लिए लॉगिंग स्तर निर्धारित कर सकते हैं जैसा कि नीचे दिया गया है। एप्लिकेशन और फाइल में
logging.level.com.company.myproject = DEBUG
logging.level.org.springframework.web = DEBUG
तथा logging.level.org.hibernate = DEBUG
केवल स्प्रिंग फ्रेमवर्क वेब और हाइबरनेट की कक्षाओं के लिए लॉगिंग स्तर निर्धारित करेगा।
लॉगिंग फ़ाइल स्थान उपयोग की स्थापना के लिए
logging.file =/home/ubuntu/myproject.log
यदि आप स्प्रिंग बूट पर हैं तो आप सीधे application.properties में निम्नलिखित गुण जोड़ सकते हैं लॉगिंग स्तर सेट करने के लिए फ़ाइल , लॉगिंग पैटर्न को कस्टमाइज़ और लॉग में बाहरी फ़ाइल संग्रहीत कर सकते हैं।
ये विभिन्न लॉगिंग स्तर हैं और न्यूनतम << अधिकतम से इसका क्रम है।
बंद << FATAL << ERROR << WARN << INFO << DEBUG << TRACE << सभी
# To set logs level as per your need.
logging.level.org.springframework = debug
logging.level.tech.hardik = trace
# To store logs to external file
# Here use strictly forward "/" slash for both Windows, Linux or any other os, otherwise, its won't work.
logging.file=D:/spring_app_log_file.log
# To customize logging pattern.
logging.pattern.file= "%d{yyyy-MM-dd HH:mm:ss} - %msg%n"
अपने लॉग को अधिक स्पष्ट रूप से अनुकूलित करने के लिए कृपया इस लिंक से गुजरें।
https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-logging.html
यदि आप एक अलग लॉगिंग फ्रेमवर्क का उपयोग करना चाहते हैं, उदाहरण के लिए, log4j, मैंने पाया कि सबसे आसान तरीका यह है कि स्प्रिंग बूटिंग को स्वयं लॉगिंग अक्षम करें और अपने स्वयं के कार्यान्वित करें। इस तरह मैं हर फ़ाइल को एक फ़ाइल के भीतर कॉन्फ़िगर कर सकता हूं, log4j.xml (मेरे मामले में) जो है।
इसे प्राप्त करने के लिए आपको बस उन पंक्तियों को अपने pom.xml में जोड़ना होगा:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-log4j</artifactId>
</dependency>
आपके पास पहले से ही पहली निर्भरता है और केवल अन्य दो की जरूरत है। कृपया ध्यान दें, कि यह उदाहरण केवल log4j को कवर करता है।
यह सब है, अब आप अपने log4j config फाइल के भीतर बूट के लिए लॉगिंग को कॉन्फ़िगर करने के लिए बिल्कुल तैयार हैं!
log4j.properties
।
रिकॉर्ड के लिए: आधिकारिक दस्तावेज , स्प्रिंग बूट के रूप में v1.2.0। कृपया और वसंत v4.1.3। जारी करें:
यदि आपको लॉगिंग करने के लिए आवश्यक एकमात्र परिवर्तन विभिन्न लॉगर्स के स्तरों को निर्धारित करना है, तो आप "logging.level" उपसर्ग का उपयोग करते हुए Application.properties में कर सकते हैं, उदा।
logging.level.org.springframework.web: DEBUG
logging.level.org.hibernate: ERROR
आप "logging.file" का उपयोग करके (कंसोल के अतिरिक्त) लॉग इन करने के लिए एक फ़ाइल का स्थान भी सेट कर सकते हैं।
लॉगिंग सिस्टम की अधिक बारीक-बारीक सेटिंग्स को कॉन्फ़िगर करने के लिए आपको सवाल में लॉगिंग सिस्टम द्वारा समर्थित मूल कॉन्फ़िगरेशन प्रारूप का उपयोग करने की आवश्यकता है। डिफ़ॉल्ट रूप से स्प्रिंग बूट सिस्टम के लिए अपने डिफ़ॉल्ट स्थान से मूल कॉन्फ़िगरेशन को चुनता है (जैसे कि classpath: logback.xml for Logback), लेकिन आप "logging.config" संपत्ति का उपयोग करके कॉन्फ़िगरेशन फ़ाइल का स्थान सेट कर सकते हैं।
यदि आप अधिक विवरण सेट करना चाहते हैं, तो कृपया लॉग कॉन्फिगर फ़ाइल नाम "logback.xml" या "logback-spring.xml" जोड़ें।
अपने आवेदन में। फाइल में इस तरह से इनपुट करें:
logging.config: classpath:logback-spring.xml
लोबैक-स्प्रिंग.एक्सएमएल में इस तरह से इनपुट करें:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<include resource="org/springframework/boot/logging/logback/base.xml"/>
<appender name="ROOT_APPENDER" class="ch.qos.logback.core.rolling.RollingFileAppender">
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>INFO</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
<file>sys.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${LOG_DIR}/${SYSTEM_NAME}/system.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>500MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
<encoder>
<pattern>%-20(%d{yyy-MM-dd HH:mm:ss.SSS} [%X{requestId}]) %-5level - %logger{80} - %msg%n
</pattern>
</encoder>
</appender>
<appender name="BUSINESS_APPENDER" class="ch.qos.logback.core.rolling.RollingFileAppender">
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>TRACE</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
<file>business.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${LOG_DIR}/${SYSTEM_NAME}/business.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>500MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
<encoder>
<pattern>%-20(%d{yyy-MM-dd HH:mm:ss.SSS} [%X{requestId}]) %-5level - %logger{80} - %msg%n
</pattern>
</encoder>
</appender>
<logger name="{project-package-name}" level="TRACE">
<appender-ref ref="BUSINESS_APPENDER" />
</logger>
<root level="INFO">
<appender-ref ref="ROOT_APPENDER" />
</root>
</configuration>
मौजूदा उत्तर महान हैं। मैं सिर्फ आपके साथ एक नया स्प्रिंग बूट फीचर साझा करना चाहता हूं जिससे समूह में लॉग और पूरे समूह पर लॉगिंग स्तर सेट हो सके।
डॉक्स से छूट:
logging.group.tomcat=org.apache.catalina, org.apache.coyote, org.apache.tomcat
logging.level.tomcat=TRACE
यह अच्छी सुविधा है जो अधिक लचीलापन लाता है।
मेरे वर्तमान विन्यास में मैंने इसे इस तरह से application.yaml में परिभाषित किया है:
logging:
level:
ROOT: TRACE
मैं स्प्रिंग-बूट: 2.2.0 का उपयोग कर रहा हूँ। कृपया। आप किसी भी पैकेज को परिभाषित कर सकते हैं जिसके पास TRACE का स्तर होना चाहिए।
वसंत बूट परियोजना में हम logging.level.root = WARN लिख सकते हैं, लेकिन यहाँ समस्या यह है, हमें फिर से पुनः आरंभ करना होगा, यहां तक कि हमने devtools निर्भरता को भी जोड़ा है, यदि हम संशोधित किए गए किसी भी मूल्य को ऑटोडेटेक्टेबल नहीं करेंगे, तो इस सीमा के लिए मुझे पता चला समाधान i, e हम pom.xml में एक्ट्यूएटर जोड़ सकते हैं और url बार http: // localhost: 8080 / loggers / ROOT या http: // localhost: 8080 / loggers / com में डाकिया ग्राहक में दिखाए अनुसार लकड़हारा स्तर पास कर सकते हैं। .mycompany और शरीर में आप नीचे दिए गए json प्रारूप को पास कर सकते हैं
{
"configuredLevel": "WARN"
}
ग्रहण आईडीई और आपकी परियोजना के मामले में परिवर्तन को प्रतिबिंबित करने के लिए परियोजना को साफ और निर्माण करना याद रखें।
स्प्रिंगबूट 2 के साथ आप इस तरह एक पर्यावरण चर के साथ रूट लॉगिंग स्तर सेट कर सकते हैं:
logging.level.root=DEBUG
या आप इस तरह के पैकेज के लिए विशिष्ट लॉगिंग सेट कर सकते हैं:
logging.level.my.package.name=TRACE
LOGGING_LEVEL_ROOT=DEBUG
ऊंट मामले के सिंटैक्स का उपयोग करके
Settings
-> वांछित स्तर परConfig Vars
सेटlogging.level.com.yourpackage
करें (INFO, ERROR, DEBUG)।