Ich versuche herauszufinden, wie Sie die Funktionen java.util.logging verwenden. Alle Tutorials zeigen, wie man sich von der Hauptklasse in eine Protokolldatei einloggt, aber ich kann nicht herausfinden, wie ich mich in verschiedenen Klassen in einer Datei anmelden kann. Ich habe einen Web-Service und einen Web-Service-Client und möchte Fehler im Web-Service protokollieren, während ich den Web-Service-Client verwende.Java-Logger zu einer Datei über mehrere Klassen und Pakete
Ich habe versucht, eine Logger-Klasse zu erstellen, aber ich endete mit 38 leeren Protokolldateien. Wie soll ich einen Logger erstellen, der in jeder meiner Klassen im Web-Service aufgerufen wird? Der Webservice hat zwei verschiedene Pakete und verschiedene Klassen.
In meiner Suche habe ich für eine Singleton-Logger-Klasse auf die Idee kommen. Ich versuche, herauszufinden, wie es zu implementieren:
public class Logger{
private static Logger self = new Logger();
//empty private constructor
private Logger(){
}
//synchronized getInstance
public static synchronized Logger getInstance(){
if (self == null)
self = new Logger();
return self;
}
//prevent cloning
public Object clone() throws CloneNotSupportedException {
throw new CloneNotSupportedException();
}
//synchronized logging
public synchronized void debug(String msg){
}
public synchronized void info(String msg){
}
public synchronized void fatal(String msg){
}
}
Um dies zu nennen in meinen anderen Klassen, würde ich einen Filehandler in jeder Klasse erstellen müssen?
Was ich herausfinden möchte, ist, wie man den "root" Logger einrichtet. Wenn ich Klassen: client.alerts.AlertHandler client.alerts.AlertTimer client.alerts.Connect client.weather.Weather client.weather.WeatherData Was würde ich in jedem von diesen setzen, so konnte ich Logge dich in eine Datei ein. Jedes Beispiel, das ich finde, zeigt, wie man von nur einer Klasse zu einer Protokolldatei protokolliert. Ich weiß nicht, wie ich mich von mehreren Klassen in einer Protokolldatei anmelden kann. Wo ist die Wurzel meiner "Logger-Hierarchie"? – ravun
Mit dem JDK wäre ein Logger namens "Client" ein geeigneter Root-Logger. Sie können auch Logger.getParent() verwenden, um den Parent eines Loggers abzurufen, bis ein Logger kein übergeordnetes Element mehr hat. Wenn Sie Ihren Root-Logger haben, verwenden Sie Logger.addHandler(), um dem Logger einen Handler hinzuzufügen. Passen Sie schließlich die Protokollierungsstufe des Handlers an (mit Handler.setLevel()) und Sie sollten alle gesetzt sein. – Bombe