मैं एक स्प्रिंग 3.1.1 में लॉग 4j 1.2.15 का उपयोग कर रहा हूं। जेबॉस एएस 7.1.1.इनल पर तैनात किया गया एप्लिकेशन। मैं log4j में लिखित आउटपुट को मेरी प्रतिक्रिया आउटपुट स्ट्रीम में रूट करने की कोशिश कर रहा हूं। मैं उत्पादन इसमैं अपने HttpServletResponse आउटपुट स्ट्रीम में log4j आउटपुट को रीडायरेक्ट कैसे करूं?
private static final Logger LOG = Logger.getLogger(TrainingSessionServiceImpl.class);
…
LOG.info("Creating/updating training session associated with order #:" + order.getId());
की तरह लिखा है और मैं बहुत तरह मेरे उत्पादन स्ट्रीम पर रूट करने के लिए
@RequestMapping(value = "/refreshPd", method = RequestMethod.GET)
public void refreshPD(final HttpServletResponse response) throws IOException
{
...
final WriterAppender appender = new WriterAppender(new PatternLayout("%d{ISO8601} %p - %m%n"),response.getWriter());
appender.setName("CONSOLE_APPENDER");
appender.setThreshold(org.apache.log4j.Level.DEBUG);
Logger.getRootLogger().addAppender(appender);
worker.work();
Logger.getRootLogger().removeAppender("CONSOLE_APPENDER");
भले ही मैं जानता हूँ कि कोशिश कर रहा हूँ ... लेकिन दुर्भाग्य से, कुछ भी अपने ब्राउज़र के लिए उत्पादन हो रही है, (डीबगिंग के माध्यम से) कि लॉगिंग स्टेटमेंट बुलाया जा रहा है। क्या कोई जानता है कि मैं इसे कैसे काम करने के लिए अपने सेटअप को समायोजित कर सकता हूं? नीचे मेरी log4j.properties फ़ाइल है, जो मेरे युद्ध की वेब-आईएनएफ/कक्षा निर्देशिका में तैनात है।
log4j.rootLogger=DEBUG, CA, FA
#Console Appender
log4j.appender.CA=org.apache.log4j.ConsoleAppender
log4j.appender.CA.layout=org.apache.log4j.PatternLayout
log4j.appender.CA.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n
#File Appender
log4j.appender.FA=org.apache.log4j.FileAppender
log4j.appender.FA.File=/usr/java/jboss/server/default/log/log4j.log
log4j.appender.FA.layout=org.apache.log4j.PatternLayout
log4j.appender.FA.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n
# Set the logger level of File Appender to WARN
log4j.appender.FA.Threshold = DEBUG
धन्यवाद, - डेव
क्या 'worker.work()' समान या अन्य धागे में चलता है? समस्या से पता चलता है कि यह एक और धागे में चलता है। – BalusC
हां, यह एक ही धागे में चलता है। – Dave
टॉमकैट पर मेरे लिए ठीक काम करता है। थोड़ी सी जांच के बाद, यह जेबॉस एएस विशिष्ट मुद्दे की तरह दिखता है: http://stackoverflow.com/questions/6071809/adding-log4j-appenders- प्रोग्रामेटिक रूप से और बाद में https://issues.jboss.org/browse/JBAS-9318 – BalusC