2012-07-03 9 views
12

के तहत सिंपलफॉर्मेटर प्रारूप संपत्ति को संशोधित करना मैं उबंटू पर ओपनजेडीके 1.7 के तहत चल रहा टॉमकैट 7.0.28 का उपयोग कर रहा हूं, और java.util.logging.SimpleFormatter द्वारा उपयोग की जाने वाली स्वरूपण स्ट्रिंग को संशोधित करने का प्रयास कर रहा हूं। उस वर्ग के लिए जावाडॉक्स के अनुसार, मैं प्रारूप बदलने के लिए java.util.logging.SimpleFormatter.format संपत्ति निर्दिष्ट कर सकता हूं। और वास्तव में, जब मैं ग्रहण में अपना वेबपैप चलाता हूं और इस संपत्ति को मेरी logging.properties फ़ाइल में बदलता हूं, तो यह काम करता है।java.util.logging को संशोधित करना। टॉमकैट

हालांकि, जब मैं टॉमकैट में ऐप को तैनात करता हूं, तो इस संपत्ति का कोई प्रभाव नहीं पड़ता है। मुझे विश्वास है कि मेरी गुण फ़ाइल ठीक से पढ़ा जा रहा है, अन्य बदलाव है कि मैं यह करने के लिए कर वास्तव में उपयोग करते हुए प्रभावी होने के (मैं एक फ़ाइल से में गुण पढ़ रहा हूँ के रूप में कर रहा हूँ

LogManager.getLogManager().readConfiguration(new FileInputStream(file)) 

जहां फ़ाइल एक पैरामीटर के माध्यम से कॉन्फ़िगर किया गया है मेरी web.xml फ़ाइल में। मैंने फ़ाइल को WEB-INF/classes/logging.properties में डालने का प्रयास किया है, व्यवहार में कोई बदलाव नहीं है।

सरलफॉर्मेटर के लिए जावाडॉक्स निर्दिष्ट करते हैं कि यदि कोई गुण फ़ाइल और सिस्टम प्रॉपर्टी स्वरूपण स्ट्रिंग निर्दिष्ट करें, सिस्टम प्रॉपर्टी को प्राथमिकता दी गई है। मैंने सत्यापित किया है कि सिस्टम प्रॉपर्टी

सेट नहीं है

ServletContextListener.context प्रारंभिक विधि में।

यहाँ मेरी लॉगिंग गुण पूर्ण

handlers=java.util.logging.ConsoleHandler 

# Default logging level for root logger 
.level=FINE 

# Set the level for the ConsoleHandler 
java.util.logging.ConsoleHandler.level=FINE 
java.util.logging.ConsoleHandler.formatter=java.util.logging.SimpleFormatter 
java.util.logging.SimpleFormatter.format=[%1$tF %1$tr] %3$s %4$s: %5$s %n 

मैं सब कुछ मैं के बारे में सोच सकते हैं, दोनों TOMCAT/conf और JRE_HOME/lib निर्देशिका में logging.properties को संशोधित करने सहित कोशिश की है में दाखिल है। कुछ भी कोई फर्क नहीं पड़ता है।

+2

एक ही समस्या का सामना। यहां अनुमान लगाया गया है: 'java.util.logging.SimpleFormatter.format' प्रॉपर्टी सुविधा जावा 7 में पेश की गई थी। मुझे पता है कि टॉमकैट मूल रूप से' java.util.logging' के थोड़ा संशोधित संस्करण का उपयोग करता है। मुझे आश्चर्य है कि यही कारण है। – peterh

+0

हाँ nolan6000, मुझे एक ही समस्या थी और यह जेडीके संस्करण से संबंधित था जिसका मैं उपयोग कर रहा था। धन्यवाद। –

उत्तर

2

पता नहीं है कि यह आपकी समस्या का समाधान करेगा, लेकिन यह एक कोशिश के लायक हो सकता है। मैं वही व्यवहार देख रहा था, हालांकि मेरे मामले में मैं गुणों का उपयोग करने के बजाय प्रोग्रामिंग रूप से लॉगिंग सेटअप कर रहा था। यह पता चला है कि java.util.logging के लिए संपत्ति मान। SimpleFormatter.format को (मेरे मामले में) फ़ाइलहैंडलर बनाने से पहले सेट करने की आवश्यकता है। मैं इसे फाइलहैंडलर बनाने के बाद स्थापित कर रहा था, लेकिन सरलफॉर्मेटर बनाने से पहले। मुझे आश्चर्य है कि, आपके गुण फ़ाइल में, java.util.logging को परिभाषित करना। SimpleFormatter.format किसी भी हैंडलर गुणों को परिभाषित करने से पहले समस्या का समाधान होगा।

7

java.util.logging.SimpleFormatter.format वास्तव में लॉगिंग.प्रोपर्टीज में सेटटेबल होने के लिए प्रलेखित किया गया है - जो मेरे लिए या तो कमांड लाइन तर्क (जावा विकल्प) के रूप में काम नहीं करता है।

कमांड लाइन तर्क मेरे लिए काम करता प्रतीत होता है। क्योंकि $ JAVA_OPTS चर इतना छेड़छाड़ के माध्यम से जा रहा है और eval में समाप्त होता है है, यह मैं कैसे इसे हल (Debian, जावा 1.7.0_07, अपाचे-बिल्ला-7.0.30 पर) है

$ CATALINA_HOME/bin/catalina.sh (लाइन 230):

JAVA_OPTS="$JAVA_OPTS \"-Djava.util.logging.SimpleFormatter.format=%1\\\$tY-%1\\\$tm-%1\\\$td %1\\\$tH:%1\\\$tM:%1\\\$tS.%1\\\$tL %4\\\$s %3\\\$s %5\\\$s%6\\\$s%n\"" 
7

आप this bug साक्षी जा सकता है।

बग टॉमकैट संस्करण 7.0.41 के साथ-साथ 6.0.38 आगे से तय किया गया है।

8

the bug report में जानकारी के लिए धन्यवाद nolan6000 द्वारा इंगित किया गया, मुझे अंत में यह टॉमकैट-जुली के साथ काम कर रहा था।

बजाय:

1catalina.java.util.logging.SimpleFormatter.format=%4$s: %5$s [%1$tc]%n 
2

का उपयोग डिफ़ॉल्ट में एक फ़ॉर्मेटर पैटर्न बिलाव 8 Juli लकड़हारा इस की जरूरत है, तो आप एक वैश्विक $tomcat/conf/logging.properties या webapp विशिष्ट करने के लिए तर्क डाल सकता है:

java.util.logging.SimpleFormatter.format=%4$s: %5$s [%1$tc]%n 

यह हो गया है $tomcat/webapps/myapp/WEB-INF/classes/logging.properties फ़ाइल।

यह मेरी वैश्विक फ़ाइल है जहां मैनेजर-वेबएप लॉगिंग फ़ाइलों को भी अक्षम कर दिया गया है। लॉगिंग लाइन है:
2015-09-23 17:32:11 INFO org.apache.catalina.startup.Catalina Server startup in 1028 ms

#handlers = 1catalina.org.apache.juli.AsyncFileHandler, 2localhost.org.apache.juli.AsyncFileHandler, 3manager.org.apache.juli.AsyncFileHandler, 4host-manager.org.apache.juli.AsyncFileHandler, java.util.logging.ConsoleHandler 
handlers = 1catalina.org.apache.juli.AsyncFileHandler, 2localhost.org.apache.juli.AsyncFileHandler, java.util.logging.ConsoleHandler 

.handlers = 1catalina.org.apache.juli.AsyncFileHandler, java.util.logging.ConsoleHandler 

# formatter attributes = date, source, logger, level, message, thrown 
java.util.logging.SimpleFormatter.format = %1$tF %1$tT %4$s %3$s %5$s%6$s%n 

1catalina.org.apache.juli.AsyncFileHandler.level = FINE 
1catalina.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs 
1catalina.org.apache.juli.AsyncFileHandler.prefix = catalina. 
1catalina.org.apache.juli.AsyncFileHandler.encoding = UTF-8 
1catalina.org.apache.juli.AsyncFileHandler.formatter = java.util.logging.SimpleFormatter 
#1catalina.org.apache.juli.AsyncFileHandler.bufferSize = 2048 

2localhost.org.apache.juli.AsyncFileHandler.level = FINE 
2localhost.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs 
2localhost.org.apache.juli.AsyncFileHandler.prefix = localhost. 
2localhost.org.apache.juli.AsyncFileHandler.encoding = UTF-8 
2localhost.org.apache.juli.AsyncFileHandler.formatter = java.util.logging.SimpleFormatter 
#2localhost.org.apache.juli.AsyncFileHandler.bufferSize = 2048 

#3manager.org.apache.juli.AsyncFileHandler.level = FINE 
#3manager.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs 
#3manager.org.apache.juli.AsyncFileHandler.prefix = manager. 

#4host-manager.org.apache.juli.AsyncFileHandler.level = FINE 
#4host-manager.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs 
#4host-manager.org.apache.juli.AsyncFileHandler.prefix = host-manager. 

java.util.logging.ConsoleHandler.level = FINE 
#java.util.logging.ConsoleHandler.formatter = org.apache.juli.OneLineFormatter 
java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter 


############################################################ 
# Facility specific properties. 
# Provides extra control for each logger. 
############################################################ 

org.apache.catalina.core.ContainerBase.[Catalina].[localhost].level = INFO 
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].handlers = 2localhost.org.apache.juli.AsyncFileHandler 

#org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager].level = INFO 
#org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager].handlers = 3manager.org.apache.juli.AsyncFileHandler 

#org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/host-manager].level = INFO 
#org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/host-manager].handlers = 4host-manager.org.apache.juli.AsyncFileHandler 

# For example, set the org.apache.catalina.util.LifecycleBase logger to log 
# each component that extends LifecycleBase changing state: 
#org.apache.catalina.util.LifecycleBase.level = FINE 

# To see debug messages in TldLocationsCache, uncomment the following lines 
#org.apache.jasper.compiler.TldLocationsCache.level = FINE 
#org.apache.jasper.servlet.TldScanner.level=FINE 
+0

यह मेरे लिए वैश्विक फ़ाइल में काम करता प्रतीत होता है, लेकिन जब मैं वेब-ऐप विशिष्ट फ़ाइल में प्रारूप निर्दिष्ट करता हूं, तो यह – gaurav5430

+0

काम नहीं करता है धन्यवाद @ वाह! यह मेरे लिए काम करता है, लेकिन केवल java.util.logging.SimpleFormatter के साथ। Org.apache.juli.OneLineFormatter के साथ नहीं है :( – Gaucho

संबंधित मुद्दे