2012-01-17 16 views
9

डालने में समस्याएं मुझे क्लासपाथ पर मेरी log4j.properties फ़ाइल डालने में कुछ समस्याएं आ रही हैं। मैं इसका उपयोग कर सकता हूं जब मैं विकास कर रहा हूं (ग्रहण इंडिगो) लेकिन, जब मैं अपने ऐप को जार के रूप में निर्यात करता हूं, तो मैं नहीं कर सकता।log4.properties classpath

मैं निर्यात जार के लिए एक MANIFEST.MF फ़ाइल हाथ से बनाया गया है: इस फाइल संगठन पर जार डाल के साथ

Manifest-Version: 1.0 
Main-Class: main.Program 
Class-Path: lib/log4j.properties lib/log4j-1.2.15.jar 

और फिर:

folder 
    |-------- app.jar 
    |-------- lib 
      |--------- log4j.properties 
      |--------- log4j-1.2.15.jar 

जब मैं चलाने का प्रयास

log4j:WARN No appenders could be found for logger (main.Program). 
log4j:WARN Please initialize the log4j system properly. 

मेरे log4j.pro: app.jar, वे log4j.jar नहीं बल्कि log4j.properties लगता है perties फ़ाइल यह इस तरह है:

log4j.rootLogger=INFO, stdout, file 

PATTERN=[%d] [%p] [%c{1}]: %m%n 

log4j.appender.stdout=org.apache.log4j.ConsoleAppender 
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout 
log4j.appender.stdout.layout.ConversionPattern=${PATTERN} 

log4j.appender.file=org.apache.log4j.DailyRollingFileAppender 
log4j.appender.file.DatePattern='.'yyyy-MM-dd 
log4j.appender.file.File=${logger_file_path} 
log4j.appender.file.layout=org.apache.log4j.PatternLayout 
log4j.appender.file.layout.ConversionPattern=${PATTERN} 

उत्तर

11

classpath में log4j.properties ही न रखें, लेकिन निर्देशिका है कि उस फ़ाइल है।

Class-Path: lib lib/log4j-1.2.15.jar 
+0

एक ही त्रुटि देता है – rnunes

+0

मैंने पहले से ही log4j.properties को "फ़ोल्डर" (जहां जार मौजूद है) में बदल दिया है और क्लास-पथ को "lib/log4j-1.2.15.jar" में बदल दिया है। इससे पहले मैंने "lib" (उदा।/Lib /, lib /, ./lib/) के कई फ़ोल्डर पथ का प्रयास किया है और उनमें से कोई भी काम नहीं करता है। – rnunes

+0

एक पुराना धागा, लेकिन सिर्फ यह जोड़ना चाहता हूं कि यह दृष्टिकोण वास्तव में काम करता है। इस दृष्टिकोण के बारे में एक और अच्छी बात यह है कि उपयोगकर्ता वास्तव में लॉग स्तर को बदल सकता है यदि वे चाहते हैं क्योंकि कॉन्फ़िगरेशन फ़ाइल किसी भी जार से बाहर है। – arunskrish

1

app.jar को log4j.properties जोड़ें।

+0

अब के लिए मैं इसे बाहर करना पसंद करता हूं – rnunes

12

तीन तरीकों से पता है।

  1. जोड़े log4j.propertiesapp.jar
  2. को "फ़ोल्डर" (जहां जार मौजूद है) करने के लिए log4j.properties रखो और .lib/log4j-1.2.15.jar को वर्ग-पथ बदल जाते हैं।
  3. उदाहरण के लिए "conf" नामक फ़ोल्डर में log4j.properties डाल दें, और कक्षा-पथ को ./conf/ पर बदलें।

मैंने कोशिश की है, यह काम करता है। निष्पादित करने के लिए -Dlog4j.configuration=file:"./log4j.properties"

+3

आपको बहुत धन्यवाद। मेरी अंग्रेजी बहुत ख़राब है! –

17

एक और तरीका यह है जार -Dlog4j.configuration = फ़ाइल

javar: "./ log4j.properties" app.jar

+1

log4j संस्करण 2 के लिए उपयोग करें: -Dlog4j.configurationFile = फ़ाइल: "YourPathHERE/log4j2.xml" – DataMania

0

मैं जेस्पर के जवाब की कोशिश की, और पहले यह काम नहीं किया। फिर मैंने

Class-Path: lib/ lib/log4j-1.2.15.jar 

और उसके बाद काम किया।

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