दिलचस्प पोस्ट
नोड / एक्सप्रेस फ़ाइल अपलोड करें एस्प.net आवेदन में नवीनतम जेएस और सीएसएस फ़ाइलों को प्राप्त करने के लिए ब्राउज़र को बल दें क्या मॉलोक धागा सुरक्षित है? हर जगह क्लिक करें लेकिन यहां इवेंट डीजांगो एकत्रीकरण: दो क्षेत्रों के गुणन का सारांश Com.google.android.gms नहीं मिल सका: प्ले-सेवाओं: 3.1.5 9 3.2.25 4.0.30 4.1.32 4.2.40 4.2.42 4.3.23 4.4.52 5.0.77 5.0.8 9 5.2.08 6.1। 11 6.1.71 6.5.87 जावास्क्रिप्ट: फ़ाइल अपलोड करें कैसे PHP त्रुटि को हल करने के लिए 'नोटिस: स्ट्रिंग रूपांतरण में सरणी …' एंड्रॉइड में PostExecute की गतिविधि को सही ढंग से कैसे प्रारंभ करें? रेल पर रूबी में होस्टनाम या आईपी प्राप्त करना सीएसआरएफ की रोकथाम टोकन में क्यों रखा जाना आम है? क्या SQL सर्वर MySQL पर डुप्लिकेट की कुंजी अद्यतन की तरह कुछ भी ऑफर करता है सी # वर्तनी जांच वर्ग का उपयोग करने की कोशिश कर रहा है सी # का उपयोग कर पीडीएफ कैसे रेंडर करने के लिए मैं लिनक्स पर जीसीसी के लिए एक साधारण मेसेफ़ाइल कैसे बनाऊं?

हाइबर्नेट लॉगिंग कंसोल आउटपुट को बंद करना

मैं हाइबरनेट 3 का उपयोग कर रहा हूं और इसे सभी स्टार्टअप संदेशों को कंसोल में डंप करने से रोकना चाहता हूं। मैंने log4j.properties में stdout लाइनों पर टिप्पणी करने की कोशिश की लेकिन कोई भाग्य नहीं। मैंने अपनी लॉग फ़ाइल को नीचे चिपकाया है I इसके अलावा मैं मानक परियोजना संरचना के साथ ग्रहण का उपयोग कर रहा हूं और log4j.properties की एक प्रोजेक्ट फ़ोल्डर और बिन फ़ोल्डर दोनों की जड़ में है।

  ### stdout ### पर सीधे लॉग संदेश
 # Log4j.appender.stdout = org.apache.log4j.ConsoleAppender
 # Log4j.appender.stdout.Target = System.out
 # Log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
 # log4j.appender.stdout.layout.ConversionPattern =% d {ABSOLUTE}% 5p% c {1}:% एल -% एम% एन

 ### सीधा संदेश Hibernate.log फ़ाइल करने के लिए ###
 log4j.appender.file = org.apache.log4j.FileAppender
 log4j.appender.file.File = hibernate.log
 log4j.appender.file.layout = org.apache.log4j.PatternLayout
 log4j.appender.file.layout.ConversionPattern =% d {ABSOLUTE}% 5p% c {1}:% एल -% एम% एन

 ### लॉग स्तर सेट करें - अधिक वर्बोज़ लॉगिंग में बदलाव के लिए 'info' को 'डीबग' करें ###

 log4j.rootlogger = चेतावनी, stdout

 # Log4j.logger.org.hibernate = जानकारी
 log4j.logger.org.hibernate = डिबग

 ### लॉग HQL क्वेरी पार्सर गतिविधि
 # Log4j.logger.org.hibernate.hql.ast.AST = डिबग

 ### बस एसक्यूएल लॉग इन करें
 # Log4j.logger.org.hibernate.SQL = डिबग

 ### लॉग इन करें JDBC बाइंड पैरामीटर ###
 log4j.logger.org.hibernate.type = जानकारी
 # Log4j.logger.org.hibernate.type = डिबग

 ### लॉग स्कीमा निर्यात / अपडेट ###
 log4j.logger.org.hibernate.tool.hbm2ddl = डिबग

 ### लॉग HQL parse पेड़
 # Log4j.logger.org.hibernate.hql = डिबग

 ### लॉग कैश गतिविधि ###
 # Log4j.logger.org.hibernate.cache = डिबग

 ### लॉग लेनदेन गतिविधि
 # Log4j.logger.org.hibernate.transaction = डिबग

 ### लॉग इन करें JDBC संसाधन अधिग्रहण
 # Log4j.logger.org.hibernate.jdbc = डिबग

 ### यदि आप कनेक्शन को ट्रैक करना चाहते हैं तो निम्नलिखित पंक्ति को सक्षम करें ###
 ### लीकेज जब DriverManagerConnectionProvider का उपयोग करते हुए ###
 # Log4j.logger.org.hibernate.connection.DriverManagerConnectionProvider = trac5 

वेब के समाधान से एकत्रित समाधान "हाइबर्नेट लॉगिंग कंसोल आउटपुट को बंद करना"

अधिक उचित लॉगिंग स्तर सेट करने का प्रयास करें लॉगिंग स्तर की info को सेट करने का अर्थ है कि info या उच्च स्तर पर लॉग ईवेंट ( warn , error और fatal ) लॉग होता है, जो debug लॉगिंग इवेंट को नजरअंदाज कर दिया जाता है।

 log4j.logger.org.hibernate=info 

या log4j config फाइल के एक्सएमएल संस्करण में:

 <logger name="org.hibernate"> <level value="info"/> </logger> 

यह भी देखें log4j मैनुअल ।

महत्वपूर्ण नोटिस: संपत्ति (हाइबरनेट कॉन्फ़िगरेशन का भाग, लॉगिंग फ्रेमवर्क कॉन्फिग का हिस्सा नहीं!)

 hibernate.show_sql 

लॉगिंग को सीधे किसी भी लॉगिंग ढांचे को बाधित करके STDOUT पर नियंत्रण करता है (जो कि संदेशों के लापता आउटपुट स्वरूपण के द्वारा आप पहचान सकते हैं)। यदि आप log4j जैसे एक लॉगिंग ढांचे का उपयोग करते हैं, तो आपको हमेशा उस संपत्ति को झूठी सेट करना चाहिए क्योंकि यह आपको बिल्कुल लाभ नहीं देता है।

यह परिस्थिति मुझे बहुत लंबे समय तक परेशान करती है क्योंकि मैंने कभी इसके बारे में सचमुच परवाह नहीं किया जब तक कि मैं सीतनिद्रा में होना कुछ बेंचमार्क लिखने की कोशिश नहीं करता था।

निष्पादित:

 java.util.logging.Logger.getLogger("org.hibernate").setLevel(Level.OFF); 

सीतनिद्रा में होना शुरू करने से पहले मेरे लिए काम किया

नोट: उपरोक्त पंक्ति हर लॉजिंग ऑफ ( Level.OFFLevel.OFF ) को बदल Level.OFF । यदि आप कम सख्त होना चाहते हैं, तो आप उपयोग कर सकते हैं

 java.util.logging.Logger.getLogger("org.hibernate").setLevel(Level.SEVERE); 

वह काफी चुप है (या अधिक स्तरों के लिए java.util.logging.Level वर्ग की जांच करें)

आप सीतनिद्रा में होना हाइबरनेट (एचबी विन्यास) के इस प्रोप को गलत सेट करने के कई आउटपुट को अक्षम कर सकते हैं:

 hibernate.show_sql hibernate.generate_statistics hibernate.use_sql_comments 

लेकिन अगर आप सभी कंसोल जानकारी को अक्षम करना चाहते हैं तो आपको org.hibernate समान वर्ग org.hibernate के FATAL के किसी भी प्रकार के org.hibernate स्तर को सेट करना होगा।

मैं अंत में सोचा, यह है क्योंकि सीतनिद्रा में होना अब slf4j लॉग मुखौटा का उपयोग कर रहा है, log4j को पुल करने के लिए, आपको अपने lib में लॉग 4 जे और slf4j-log4j12 जार रखने की आवश्यकता होगी और फिर log4j गुण नियंत्रण हाइबरनेट लॉग को नियंत्रित करेगा।

मेरा pom.xml सेटिंग नीचे दिखती है:

  <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.16</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <version>1.6.4</version> </dependency> 

Hibernate:select अक्षम करने के लिए Hibernate:select लॉग में संदेश का Hibernate:select , यह HibernateJpaVendorAdapter में संपत्ति सेट करना संभव है:

 <bean id="jpaVendorAdapter" class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter"> <property name="showSql" value="false"/> </bean> 

उन लोगों के लिए जो खूबसूरत समाधान नहीं चाहते हैं, उन संदेशों को रोकने के लिए सिर्फ एक त्वरित और गंदा तरीका है, यह एक ऐसा समाधान है जो मेरे लिए काम करता है (मैं सीतनिद्रा में होना 4.3.6 और ग्रहण का उपयोग करता हूं और ऊपर दिए गए कोई जवाब नहीं (या इंटरनेट पर पाया गया है) काम किया; न तो log4j कॉन्फिग फाइल्स और न ही प्रवेश स्तर की प्रोग्राम स्थापित)

 public static void main(String[] args) { //magical - do not touch @SuppressWarnings("unused") org.jboss.logging.Logger logger = org.jboss.logging.Logger.getLogger("org.hibernate"); java.util.logging.Logger.getLogger("org.hibernate").setLevel(java.util.logging.Level.WARNING); //or whatever level you need ... } 

मैंने इसे इस साइट से डाउनलोड ट्यूटोरियल प्रोग्राम में इस्तेमाल किया था

कंसोल में लॉगर आउटपुट से छुटकारा पाने के लिए यह कोशिश करें।

 ch.qos.logback.classic.LoggerContext.LoggerContext loggerContext = (LoggerContext) org.slf4j.LoggerFactory.LoggerFactory.getILoggerFactory(); loggerContext.stop(); 

ये बयान लॉगर से सभी कंसोल आउटपुट अक्षम कर दिया।

मैंने "डीबग" को "जानकारी" में बदल दिया और यह काम किया। मैंने जो किया था यह रहा:

पहले:

 log4j.rootLogger=debug, stdout, R 

बाद:

 log4j.rootLogger=info, stdout, R 

Slf4j-jdk14-xxx.jar को slf4j-log4j12-xxx.jar के साथ बदलें। यदि आपके पास दोनों हैं, तो slf4j-jdk14-xxx.jar को हटा दें। इस समाधान को https://forum.hibernate.org/viewtopic.php?f=1&t=999623 पर मिला