मैं अपने सर्वलेट के लिए $ TOMCAT_HOME/लॉग में नामित लॉग कैसे बना सकता हूं?

मैं वर्तमान में टॉमकैट का उपयोग कर अपने सर्वलेट के भीतर विधियों के सबसे सरल तरीकों से लॉग इन कर रहा हूं। मैं ServletConfig.getServletContext() का उपयोग करता हूं। गतिविधि रिकॉर्ड करने के लिए लॉग इन करें। यह $ TOMCAT_HOME/लॉग में localhost.YYYY-MM-DD.log को लिखता है।

जब तक कि बिल्कुल जरूरी नहीं है, मैं इस लॉगिंग तंत्र की सादगी से दूर नहीं जाना चाहता हूं। लेकिन मैं अपनी लॉग फ़ाइल का नाम देना चाहूंगा। "Localhost" के बजाय .YYYY-MM-DD.log, इसे "myAppName" लिखने का कोई तरीका है। YYYY-MM-DD.log। मुझे पता है कि मैं अपना खुद का तंत्र बना सकता हूं, लेकिन फिर, मैं यहां सादगी की तलाश में हूं।

मैं Log4j जैसे एक पूर्ण ढांचे से दूर रहने की उम्मीद कर रहा हूं।

1
मैं जो भी चाहता हूं वह कर सकता हूं (नीचे जवाब देखें) बिना किसी पूरे ढांचे के और जो भी इसके साथ जाता है, जार, सीखने की अवस्था आदि। कभी-कभी इसे और भी कम कर सकते हैं।
जोड़ा लेखक dacracot, स्रोत
Log4j जैसे ढांचे के साथ क्या गलत होगा? यह मानक है और इसमें एक बहुत ही सरल इंटरफ़ेस है।
जोड़ा लेखक Hans Doggen, स्रोत

2 उत्तर

तो मेरे सर्वलेट कोड को छूए बिना $ TOMCAT_HOME/conf/logging.properties के माध्यम से एक तरीका है ...

इससे पहले कि ...

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

बाद...

handlers = 1catalina.org.apache.juli.FileHandler, 2localhost.org.apache.juli.FileHandler, 3manager.org.apache.juli.FileHandler, 4admin.org.apache.juli.FileHandler, 5host-manager.org.apache.juli.FileHandler, java.util.logging.ConsoleHandler, 6localhost.org.apache.juli.FileHandler

फिर जोड़िए...

6localhost.org.apache.juli.FileHandler.level = FINE
6localhost.org.apache.juli.FileHandler.directory = ${catalina.base}/logs
6localhost.org.apache.juli.FileHandler.prefix = myAppName.

और जोड़...

org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/myAppName].level = INFO
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/myAppName].handlers = 6localhost.org.apache.juli.FileHandler

और टोमकैट उछाल। इसने मेरे सरल ServletConfig.getServletContext ()। लॉग() संदेशों के साथ $ TOMCAT_HOME/logs/myAppName.2008-10-14.log बनाया।

0
जोड़ा

टॉमकैट 6.x के लिए, आप लॉगिंग कॉन्फ़िगरेशन को conf/logging.properties में बदल सकते हैं।

लेकिन मैं Log4j के साथ एक अलग विन्यास पसंद करते हैं ...

0
जोड़ा
क्या लॉगिंग.प्रोपर्टीज को मेरे सर्वलेट के संदर्भ में विशिष्ट बनाने का कोई तरीका है? इसके अलावा, मैं सादगी पसंद करूंगा, और Log4j मुझे सरल के रूप में नहीं रोकता है (आवश्यक रूप से मुश्किल नहीं है, लेकिन विकल्पों के साथ बोझ से अधिक)।
जोड़ा लेखक dacracot, स्रोत
log4j उपयोग करने के लिए बहुत आसान है। बस इसे पहली बार सेट अप करने के लिए आवश्यक 5 मिनट लें, उसी log4j.properties या log4j.xml कॉन्फ़िगरेशन फ़ाइल का उपयोग करें, और आप परिणामों से बहुत खुश होंगे (और आश्चर्य है कि आपने इसका पहले उपयोग क्यों नहीं किया! )।
जोड़ा लेखक matt b, स्रोत