Udv,
a kovetkezo a problema. Minden osztalyban van egy private static final Logger, amit a Logger.getLogger(MyClass.class.getName()) static metodussal kapok meg. A visszaadott loggeren meghivtam a setLevel(Level.ALL)-t, megis csak az INFO szintu uzeneteket loggolja, se alacsonyabbat, se magasabbat. Valami tipp, hogy miert lehet?
Szerk.: Java SE 6 API java.util.logging.Logger osztalyarol van szo. Nincs appserver, egyszeru Java SE app van csak. Code sample:
public class P2PClient {
private static final Logger logger = Logger.getLogger(P2PClient.class.getName());
public static void main(String[] args) {
logger.setLevel(Level.ALL);
new P2PClient().start(args);
}
public void start(String[] args) {
// Itt mar vannak dolgok, de csak az INFO szintu jelenik meg a kepernyon.
}
}
- 1530 megtekintés
Hozzászólások
A kimeneti loglevel szerintem az appserver dolga, a program dolga az, hogy az adott loglevelen írjon valamit. Ha beállítod a programban a loglevelt ALL-ra, akkor azzal fogja írni a logot az a logger, ahol a class-od van. Aztán amikor fájlba kerülne, akkor van egy threshold, ami szűr, ez valószínűleg INFO, ha nem állítasz be semmi különöset.
--
http://wiki.javaforum.hu/display/~auth.gabor/Home
- A hozzászóláshoz be kell jelentkezni
De ez nem magyarázza azt, hogy INFO-nál magasabbat miért nem loggol.
- A hozzászóláshoz be kell jelentkezni
Epp ellenkezoleg: az appszerver leszuri az INFO-nal magasabb szintu logokat. Az appszerver oldalan emeld meg a naploszintet, es menni fog. Elvben...
--
Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant. | Gentoo Portal
- A hozzászóláshoz be kell jelentkezni
Persze csak ha van appszerver. Mert errol az eredeti kerdes nem tesz emlitest :-)
- A hozzászóláshoz be kell jelentkezni
Nincs appserver. :D Java SE 6 alkalmazasrol van szo.
- A hozzászóláshoz be kell jelentkezni
Annak mi értelme van? Ha beállítom az INFO-t az appszerveren, akkor nem kapom meg az ERROR-t? Mert szerintem az ERROR magasabb szintű az INFO-nál, az INFO alatt a DEBUG-ot (és az ALL-t) tudnám csak elképzelni.
- A hozzászóláshoz be kell jelentkezni
Milyen logger implementációt használsz?
És hol hívod meg ezt a függvényt? Static initializerben?
Nem lenne egyszerűbb a megfelelő konfigurációs fájlban beállítani a loglevelt?
- A hozzászóláshoz be kell jelentkezni
Sima Oracle JDK Logger-e a standard Java SE 6 API-bol. Az egyertelmuseg kedveert tettem be egy kis code sample-t. Nics konfig fajl, se appserver. :)
- A hozzászóláshoz be kell jelentkezni
Akkor legyen konfig fájl.
Egyébként ezért látod, amit látsz:
http://download.oracle.com/javase/6/docs/api/java/util/logging/ConsoleH…
Configuration: By default each ConsoleHandler is initialized using the following LogManager configuration properties. If properties are not defined (or have invalid values) then the specified default values are used.
java.util.logging.ConsoleHandler.level specifies the default level for the Handler (defaults to Level.INFO).
java.util.logging.ConsoleHandler.filter specifies the name of a Filter class to use (defaults to no Filter).
java.util.logging.ConsoleHandler.formatter specifies the name of a Formatter class to use (defaults to java.util.logging.SimpleFormatter).
java.util.logging.ConsoleHandler.encoding the name of the character set encoding to use (defaults to the default platform encoding).
- A hozzászóláshoz be kell jelentkezni
Erre is gondoltam, de a kovetkezo modositassal sem valtozik:
for (Handler h : logger.getHandlers())
h.setLevel(Level.ALL);
- A hozzászóláshoz be kell jelentkezni
Írjál már végre egy konfig fájlt.
Vagy vedd elő a forrását, és nézd meg, hogy hogyan működik, ha ilyen fafejű vagy.
- A hozzászóláshoz be kell jelentkezni
Koszi, igazad volt a konfig fajllal kapcsolatban, csak lusta voltam, mivel elvegre csak egy beadandorol van szo, amit utana senki sem fog hasznalni.
- A hozzászóláshoz be kell jelentkezni
-
- A hozzászóláshoz be kell jelentkezni
OK, a megoldas, hogy a JRE logging.properties fajljaban at kellett irni az alap INFO levelt, hogy a ConsoleHandler ne azzal inicializalodjon. Azt tovabbra sem ertem, hogy kodbol miert nem eleg explicit beallitani a loglevelt a handlerre, de hat ez van. Lenyeg, hogy mukodik.
- A hozzászóláshoz be kell jelentkezni