Problem mit Logger!

plueschi

Grünschnabel
Hallo!

Also ich habe in meinem Projekt einen Logger, den ich wie folgt erstelle:

Code:
public Loggers() {

		//failurelogger.addHandler(new FileHandler("/Users/plueschi/Desktop/Failures.txt",true));
		SimpleFormatter formatter = new SimpleFormatter();
		ConsoleHandler ch = new ConsoleHandler();
		ch.setFormatter(formatter);
		failurelogger.addHandler(ch);
		failurelogger.setUseParentHandlers(false);
}

und eine Methode "failurelog" die ich in meinem Programm aufrufe, wenn ein Fehler auftritt:
Code:
public void failurelog(String errormessage) {
		this.failurelogger.warning(Thread.currentThread().getStackTrace()[2] + ": " + errormessage);

Das Problem das ich habe ist, dass bei jedem Fehler der so geloggt wird der ConsoleHandler die LogMessage ca. 20mal in die Konsole hinausschreibt.

Ich habe leider keine Ahnung woran das liegen kann, vielleicht kann mir da jemand einen Tip geben?

Vielen Dank!
 
Nein, daran hatte ich auch schon gedacht, der Fehler wird in dieser Methode geloggt, weil ein Produkt, welches ein Stapler aufladen soll, sich nicht im Lager befindet...

Code:
private void aufladen(AufladeEvent ev) {

		boolean found = true;
		// aufladen
		Maschine m = ev.getAufladeort();
		if (!ev.getAufladeort().getBestand().containsAll(ev.getProduktListe()))
			found = false;
		if (found)
			m.buche(ev.getProduktListe(), this);
		else
			logs.failurelog(this.getName() + ": Produkt aus Lieferauftrag ist nicht im Lager");

	}
 
Nein wird sie ebenfalls nicht. Es kommt ein Event, ein AufladeEvent zum Stapler, und im Stapler wird dann die Methode aufladen() aufgerufen:
Code:
public void verarbeite(Event a) {
		super.verarbeiteEvent(a);
		//NeuerLieferauftrag Auftrag = (NeuerLieferauftrag) a;
		this.lastEvent = a;
		if (a instanceof FehlerEvent) {
			this.abladen();
		}

		else if (a instanceof FehlerEndeEvent) {
		
		}

		else if (a instanceof DriveToEvent) {
			driveTo((DriveToEvent) a);
		}

		else if (a instanceof AbladeEvent) {
			abladen((AbladeEvent) a);
		}

		else if (a instanceof AufladeEvent) {
			aufladen((AufladeEvent) a);
		}

		else if (a instanceof NeuerLieferauftrag) {
			steuereStapler((NeuerLieferauftrag) a);
		}

		else if (a instanceof MaschineFertig) {
			// Prueft ob Maschine laut Schichtplan zu dieser Zeit verfuegbar ist und überprüft ob auch keine Splitaufträge mehr in der Eventliste sind.
			if (super.getSchichtstatus().equals(Schichtstatus.NOTINSCHICHT)) {
				logs.failurelog("Maschine ist nicht in Schicht");
			} else {
				if( !this.getSimulation().getHandler().isLieferauftragInList(this)){
					super.getSimulation().getHandler().addMasch2IdleList(this);
				}
				
			}
		}

		else if (a instanceof SchichtEnde) {
			if (super.isOnIdleList())
				super.removeFromIdleList();
			this.abladen();
		}

		else if (a instanceof SchichtStart) {
			// wenn Maschine nicht defekt ist, dann setze auf IdleList
			if (super.getStatus().equals(Status.IDLE))
				super.addToIdleList();

		}

	}
 
Zurück