pytanie o log4j

0

hej, jedna rzecz jest dla mnie nie do konca jasna jesli chodzi o log4j z uzyciem pliku log4j.properties. Wszedzie pisza, ze wystarczy ten plik umiescic w katalogu projektu. i pozniej moj logger sam juz bedzie wiedzial co czytac bo bedzie widzial plik. jednak jak daje samo:

    Logger logger = Logger.getLogger(test.Test.class);
      logger.info("info test");

to dostaje ze nie znalazl:

log4j:WARN No appenders could be found for logger (test.Test).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.

musze to poprzedzic wczytaniem konfiguracji:
PropertyConfigurator.configure("src/test/log4j.properties");

czy moze jednak istnieje katalog (probowalam juz chyba wszystkie) w ktorym jesli bedzie sie ten plik znajdywal, to nie bede musiala podawac sciezki?
jesli nie-to rozumiem ze najlepszym rozwiazaniem byloby stworzenie klasy opakowujacej, ktora raz jeden wczyta mi te properties, bedzie zwracal obiekt typu logger i wtedy w kazdym miejsu dalej bede mogla uzywac tego?

czy moze zle rozumiem?

     pzdr,
          misty
0

A jak plik konfiguracyjny będzie w tym samym katalogu, z którego uruchamiasz program ? Zdaje się, że log4j szuka konfiga przy użyciu classpath

0

w katalogu w ktorym uruchamiam program. czyli tam gdzie jar. w /dist - nie pomoglo. w build/classes - nie pomoglo. caly czas dostaje:

log4j:WARN No appenders could be found for logger (test.Test).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.

czyli caly czas nie widzi tego pliku

0

a tak: java -Dlog4j.configuration=file:///path/to/log4j.properties MyApplication ?
Znalezione na: http://bytes.com/topic/java/answers/16405-log4j-where-put-properties-file
Chociaż wydaje mi się, że klasa opakowująca rzeczywiście jest najlepszym rozwiązaniem :)

0

no czekaj, ale oni tam pisza ze do classpath trzeba wrzucic i bedzie ok. no to powinno dzialac bez recznego wczytywania

0

moze ja cos powinnam jeszcze ustawic?

0

no tak napisali :) dlatego powinno wystarczyć jak plik będzie w katalogu, z którego uruchamiasz program.
tzn jak masz jara w c:\prog\dist\app.jar, to config też powinien być w c:\prog\dist i uruchamiasz program:

cd c:\prog\dist
java -jar app.jar

No ale skoro nie działa, to pozostaje podawać ścieżkę ręcznie. Jak opakujesz to swoją klasą, to tam możesz wpisać też swoją domyślną ścieżkę.

0

kurde, no wlasnie mialam napisac ze sie skumalam co zle :) wrzucalam do build/classes, ale tam mam jeszcze paczke 'test' i wlasnie tam wrzucalam. tego nie chwytal. ale jak daje do buid/classes to lyka, wreszcie :)

dzieki :)

      pzdr,
          misty
0

kurde, za szybko sie cieszyc zaczelam. przeciez build po kazdej kompilacji jest czyszczone wiec nie moge tam trzymac tego pliku :(

0

sprawa rozwiazana, ale ja jestem bystra, odpalalam sobie caly czas klase typu main, po prostu F6, zamiast skompilowac projekt.. wystarczy ten log4j.properties wrzucic do /src. skompilowac i jest ok

pzdr :)

0

No nie no:-) a ja już się zabierałem za ten Twój problem...ale ok że napisałeś.
Powiem szczerze ,że jak pierwszy raz musiałem coś wrzucić do jara a potem to odczytać to super pozytywnym zaskoczeniem było to iż musze po prostu dać plik do src.

To było dawno temu...:-)

0

jestem Ona.

pzdr :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1