Ich arbeite an einem Projekt mit Legacy-Code, der Log4J in der Vergangenheit verwendet hat und jetzt SLF4J verwendet. Die meisten Log4J Logging-Anweisungen im alten Stil bleiben bestehen, und ich konvertiere die Log-Anweisungen langsam in den neuen SLF4J-Stil, wenn ich auf sie stoße.IntelliJ: Gibt es eine Intention Action, um alte Log4J-Aufrufe in neue SLF4J-Aufrufe umzuwandeln?
Ich habe gemerkt, dass das Drücken Alt + Eingabe, wenn in den alten Protokollanweisungen Stil mir die folgenden Optionen gibt (leider kann ich keinen Screenshot hochladen):
- kopieren String Verkettung Text die Zwischenablage
- Injekt Sprache oder Referenz
- Ersetzen '+' mit 'String.format()'
- Ersetzen '+' mit 'StringBuilder.append()'
- Ersetzen '+' mit 'java.test.MessageFormat.format()'
Die Option Replace '+' with 'String.format()'
sehr nahe ist, was ich brauche, obwohl ich das String.format(
Bit nicht brauchen.
Gibt es etwas, das mir eine Absichtsaktion geben würde: Replace Log4J style log statement with SLF4J style log statement
?
Als Beispiel für alte Logging-Stil (zB Log4J), ich meine:
LOGGER.debug("User " + user.getUserId() + " has performed a search with the criteria " + dto);
Und durch neue Art meine ich:
LOGGER.debug("User {} has performed a search with the criteria {}", user.getUserId(), dto);
AFAIK gibt es nicht –
Intellij hat strukturelle ersetzen, die Ihnen helfen können (aber ich habe es nicht genug verwendet, um Sie hier spezifisch helfen): https://www.jetbrains.com/idea/documentation/ssr. html –
@WimDeblauwe Es hilft sicherlich! Vielen Dank. – vegemite4me