So erhalten Sie den Klassennamen des Arguments von LoggerFactory.getLogger, wenn Sie SLF4J in Java verwenden

Allgemeine Erwerbsmethode

private static final Logger logger = LoggerFactory.getLogger(TestSub1.class);

In diesem Fall ist die Beschreibung für jede Klassendatei unterschiedlich, und beim Kopieren ist Vorsicht geboten.

TestSample1.java


package test;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class TestSample1 {

	private static final Logger logger = LoggerFactory.getLogger(TestSub1.class);

	public void exec() {
		logger.debug("Exec method was executed.");
	}
}

Nutzen Sie dies

private final Logger logger = LoggerFactory.getLogger(this.getClass());

Wenn Sie dies verwenden, können Sie es nicht "statisch" machen, aber Sie können es kopieren, da die Beschreibung in jeder Klassendatei gleich ist.

TestSample2.java


package test;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class TestSample2 {

	private final Logger logger = LoggerFactory.getLogger(this.getClass());

	public void exec() {
		logger.debug("TestSample#Exec method was executed.");
	}
}

Verwenden Sie die Methode zur Erfassung von Klassennamen

private static final Logger logger = LoggerFactory.getLogger(Util.getClassName());

Mit der Methode "Util # getClassName" haben alle Klassendateien dieselbe Beschreibung und können kopiert werden. Es kann auch mit "statisch" verwendet werden.

TestSample3.java


package test;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class TestSample3 {

	private static final Logger logger = LoggerFactory.getLogger(Util.getClassName());

	public void exec() {
		logger.debug("TestSample3#exec method was executed.");
	}
}

Util.java


package test;

public class Util {
	public static String getClassName() {
		return Thread.currentThread().getStackTrace()[2].getClassName();
	}
}

Für CDI

Es ist möglich, Instanzen mit "@ Produces" und "@ Inject" in "Logger" zu injizieren. Alle Klassendateien haben dieselbe Beschreibung und können kopiert werden.

SampleManagedBean.java


package test.mb;

import java.io.Serializable;

import javax.enterprise.context.SessionScoped;
import javax.inject.Inject;
import javax.inject.Named;

import org.slf4j.Logger;

@Named
@SessionScoped
public class SampleManagedBean implements Serializable {

	private static final long serialVersionUID = 1L;

	@Inject
	private transient Logger logger;

	public String execute() {
		logger.info("SampleManagedBean#execute method was executed.");
		return null;
	}
}

LoggerFactoryProducer.java


package test.util;

import javax.enterprise.context.Dependent;
import javax.enterprise.inject.Produces;
import javax.enterprise.inject.spi.InjectionPoint;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

@Dependent
public class LoggerFactoryProducer {

    @Produces
    public Logger getLogger(InjectionPoint ip) {
    	return LoggerFactory.getLogger(ip.getMember().getDeclaringClass().getName());
    }
}

das ist alles

Recommended Posts

So erhalten Sie den Klassennamen des Arguments von LoggerFactory.getLogger, wenn Sie SLF4J in Java verwenden
So erhalten Sie den Namen einer Klasse / Methode, die in Java ausgeführt wird
So beheben Sie den unbekannten Fehler, der bei der Verwendung von slf4j in Java aufgetreten ist
[Java] Wie man mit der String-Klasse an die Spitze eines bestimmten Strings kommt
So erhalten Sie das Datum mit Java
So ermitteln Sie die Länge einer Audiodatei mit Java
Wenn Sie sich im Klassennamen verlieren
So erhalten Sie eine Klasse von Element in Java
So ermitteln Sie die Gesamtzahl der Seiten beim Paging in Java
So ermitteln Sie den absoluten Pfad eines in Java ausgeführten Verzeichnisses
[Java] So erhalten Sie die URL der Übergangsquelle
Rufen Sie den Namen des Testfalls in der JUnit-Testklasse ab
[Java] So erhalten Sie den Maximalwert von HashMap
graphql-ruby: So erhalten Sie den Namen der Abfrage oder Mutation im Controller Hinweis
[Java] So erhalten Sie mithilfe von Stream auf einfache Weise die längste Zeichenfolge von ArrayList
So benennen Sie Variablen in Java
So leiten Sie den letzten Tag des Monats in Java ab
Zusammenfassung der Verwendung des im IE festgelegten Proxy-Sets bei der Verbindung mit Java
[Java] Abrufen von Datumsinformationen 10 Tage später in Millisekunden in der Datumsklasse
So erhalten Sie den Inhalt von Map mithilfe des for-Anweisungsmemorandums
So erhalten Sie die ID des automatisch inkrementierten PRIMAY-Schlüssels in MyBatis
So erhöhen Sie den Wert von Map in einer Zeile in Java
Holen Sie sich das Ergebnis von POST in Java
[Java] Verwendung der File-Klasse
[Java] So erhalten Sie das aktuelle Verzeichnis
[Verarbeitung × Java] Verwendung der Klasse
[Java] Verwendung der Calendar-Klasse
So finden Sie heraus, welche Java-Version der Klassendatei kompiliert wurde
So beschränken Sie die Aktion des Übergangsziels, wenn Sie nicht angemeldet sind
Ich möchte die IP-Adresse erhalten, wenn ich mit Java eine Verbindung zu Wi-Fi herstelle
Ich möchte den Feldnamen des [Java] -Felds erhalten. (Alter Ton)
So verweisen Sie auf eine Spalte, wenn Sie die Spaltennamensmethode in ActiveRecord überschreiben
So erstellen Sie Ihre eigene Anmerkung in Java und erhalten den Wert
So erhalten Sie eine Liste mit Excel-Blattnamen in Java (POI vs SAX)
So erhalten Sie Keycloak-Anmeldeinformationen in der Interceptor-Klasse
Wie komme ich zum heutigen Tag?
[Java] So erhalten Sie die endgültige umgeleitete URL
[Swift] So ermitteln Sie die Anzahl der Elemente in einem Array (Super Basic)
So wird die Abfragezeichenfolge bei Verwendung von PreparedStatement in JDBC tatsächlich ausgegeben
Beispielcode zum Abrufen der wichtigsten SQL-Typwerte in Java + MySQL 8.0
Wenn ich in Apache POI 3.15 das Ergebnis einer Formel erhalte, erhalte ich eine FormulaParseException (die Formel bezieht sich auf "Zellen mit Blattnamen, die" ・ "enthalten).
Rufen Sie die URL des HTTP-Umleitungsziels in Java ab
[Java] So lassen Sie den privaten Konstruktor in Lombok weg
[Kotlin] Ermittelt den Argumentnamen des Konstruktors durch Reflektion
Wie schreibe ich Scala aus der Perspektive von Java
[Java] So extrahieren Sie den Dateinamen aus dem Pfad
Quelle zum Abrufen der Umleitungsquell-URL in Java
[Rails] So ändern Sie den Spaltennamen der Tabelle
[Java] Holen Sie sich die Datei unabhängig von der Umgebung in das JAR
Stand April 2018 So installieren Sie Java 8 auf einem Mac
[Android] So erhalten Sie die Einstellungssprache des Terminals
So konvertieren Sie A in a und a in A mit logischem Produkt und Summe in Java
[Rails] So erhalten Sie den Inhalt starker Parameter
Zusammenfassung der Implementierung von Standardargumenten in Java
[Swift] So erhalten Sie die Firebase-Dokument-ID
Unterschiede im Code bei Verwendung des Längensystems in Java
Fassen Sie die zusätzlichen Elemente der optionalen Klasse in Java 9 zusammen
[Java] So erhalten Sie den Schlüssel und den Wert, die in Map gespeichert sind, durch iterative Verarbeitung