Hallo zusammen,
wir haben folgende Aufgabenstellung: Log4J nachträglich in allen Java-Klassen hinzufügen
Einmalig zu erledigen, manuell bpsw. per Textersetzungen durch Eclipse oder Netbeans, allerdings in mehr als 1000 Klassen. Daher einzeln von Hand in allen Klassen zu aufwendig.
Wir sind dankbar für reale und aufgabenbezogene Tips und Hilfen
Letztendlich teilt sich das Problem in 3 bzw. 5 Bereiche auf: (in allen Klassen aka *.java Dateien)
1. "imports" hinzufügen
[CODE lang="java" title="Log4J imports"]
package my.example;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
[/CODE]
2. den Logger innerhalb der Klasse als Konstante definieren
[CODE lang="java" title="Log4J Konstante"]
public final class MyClass {
private static final Logger LOG = LogManager.getLogger(MyClass.class);
[/CODE]
3. Die "catch" Anweisungen korrigieren
[CODE lang="java" title="Log4J catch"]
} catch (ExceptionA a) {
LOG.error(a.getLocalizedMessage(), a);
} catch (ExceptionB b) {
LOG.error(b.getLocalizedMessage(), b);
} catch (ExceptionC c) {
LOG.error(c.getLocalizedMessage(), c);
}
[/CODE]
Speziell zu beachten sind die 2 folgenden Punkte
A) Bei der Logger Konstante ist die korrekte Klasse (MyClass) zu definieren (klassen-abhängig)
B) Bei der catch Anweisung ist der korrekte Name der Variable (abc) zu übernehmen (variablen-abhängig)
Da bis dato überhaupt kein Logger eingesetzt wurde, können wir hier auch nicht einfach pauschal bestehende Text ersetzen. Der Logger muss somit komplett "neu" zu allen Klassen hinzugefügt werden.
Aufgaben bzw. Problematik:
Wie würdet ihr das Problem lösen?
Vielen Dank für eure Hilfe.
wir haben folgende Aufgabenstellung: Log4J nachträglich in allen Java-Klassen hinzufügen
Einmalig zu erledigen, manuell bpsw. per Textersetzungen durch Eclipse oder Netbeans, allerdings in mehr als 1000 Klassen. Daher einzeln von Hand in allen Klassen zu aufwendig.
Wir sind dankbar für reale und aufgabenbezogene Tips und Hilfen
Letztendlich teilt sich das Problem in 3 bzw. 5 Bereiche auf: (in allen Klassen aka *.java Dateien)
1. "imports" hinzufügen
[CODE lang="java" title="Log4J imports"]
package my.example;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
[/CODE]
2. den Logger innerhalb der Klasse als Konstante definieren
[CODE lang="java" title="Log4J Konstante"]
public final class MyClass {
private static final Logger LOG = LogManager.getLogger(MyClass.class);
[/CODE]
3. Die "catch" Anweisungen korrigieren
[CODE lang="java" title="Log4J catch"]
} catch (ExceptionA a) {
LOG.error(a.getLocalizedMessage(), a);
} catch (ExceptionB b) {
LOG.error(b.getLocalizedMessage(), b);
} catch (ExceptionC c) {
LOG.error(c.getLocalizedMessage(), c);
}
[/CODE]
Speziell zu beachten sind die 2 folgenden Punkte
A) Bei der Logger Konstante ist die korrekte Klasse (MyClass) zu definieren (klassen-abhängig)
B) Bei der catch Anweisung ist der korrekte Name der Variable (abc) zu übernehmen (variablen-abhängig)
Da bis dato überhaupt kein Logger eingesetzt wurde, können wir hier auch nicht einfach pauschal bestehende Text ersetzen. Der Logger muss somit komplett "neu" zu allen Klassen hinzugefügt werden.
Aufgaben bzw. Problematik:
- Definition der korrekten RegEx Anweisungen, um diese in der IDE (Eclipse oder Netbeans) als Suchen/Ersetzen Pattern projektübergreifend verwenden zu können.
- Problematik hier: Insbesonders die letzten beiden Punkte (A und B) lassen vermuten, dass das mit RegEx allein nicht zu lösen ist.
Wie würdet ihr das Problem lösen?
Vielen Dank für eure Hilfe.
Zuletzt bearbeitet: