[JAVA] Ich möchte die Protokollausgabeeinstellung von UtilLoggingJdbcLogger ändern

1. Verwenden Sie java.util.logging.config.file

Doma2 verwendet die JDBC-Logger-Schnittstelle für die Protokollausgabe, und "UtilLoggingJdbcLogger" wird als Beispiel für seine Implementierung bereitgestellt. Da dieser "UtilLoggingJdbcLogger" JUL ("java.util.logging") für die Protokollausgabe verwendet, kann die Systemeigenschaft "java.util.logging.config.file" für Einstellungen verwendet werden, die sich auf die Protokollausgabe beziehen.

logging.properties


handlers= java.util.logging.ConsoleHandler, java.util.logging.FileHandler

java.util.logging.FileHandler.level = INFO
java.util.logging.FileHandler.pattern = logging_by_propertiesfile.log
java.util.logging.FileHandler.formatter = java.util.logging.SimpleFormatter

java.util.logging.ConsoleHandler.level = INFO
java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter

Wenn Sie beispielsweise die oben genannten "logging.properties" haben und diese auf "UtilLoggingJdbcLogger" setzen möchten, können Sie sie auf "-Djava.util.logging.config.file = \ path \ to \ logging.properties" setzen. ist.

2. Verwenden Sie java.util.logging.config.file

Sie können "UtilLoggingJdbcLogger" auch selbst erweitern, ohne die Systemeigenschaftendatei zu verwenden.

Erstellen Sie zunächst eine Klasse, die "UtilLoggingJdbcLogger" erbt. Zu diesem Zeitpunkt ist die Protokollausgabe für "super.logger" (JUL-Instanz) festgelegt.

MyUtilLoggingJdbcLogger.java


public class MyUtilLoggingJdbcLogger extends UtilLoggingJdbcLogger {
    public MyUtilLoggingJdbcLogger() {
        try {
            Formatter formatter = new SimpleFormatter();

            Handler consoleHandler = new ConsoleHandler();
            consoleHandler.setFormatter(formatter);
            consoleHandler.setLevel(Level.INFO);

            Handler fileHandler = new FileHandler("logging_by_class.log");
            fileHandler.setFormatter(formatter);
            fileHandler.setLevel(Level.INFO);

            super.logger.addHandler(consoleHandler);
            super.logger.addHandler(fileHandler);
        } catch (SecurityException | IOException e) {
            e.printStackTrace();
        }
    }
}

Stellen Sie danach die Verwendung des in der Config-Klasse von Doma2 erstellten "MyUtilLoggingJdbcLogger" ein. Insbesondere überschreibt es einfach die Methode "getJdbcLogger" und gibt die Instanz "MyUtilLoggingJdbcLogger" zurück.

AppConfig.java


@SingletonConfig
public class AppConfig implements Config {
    private final JdbcLogger logger;

    private AppConfig() {
        logger = new MyUtilLoggingJdbcLogger();
    }

    @Override
    public JdbcLogger getJdbcLogger() {
        return logger;
    }
}

Umweltinformationen

Recommended Posts

Ich möchte die Protokollausgabeeinstellung von UtilLoggingJdbcLogger ändern
Ich möchte die Protokollausgabe unter Android vereinfachen
Ich möchte den Wert von Attribute in Selenium of Ruby ändern
Ich möchte den Inhalt der Absicht var_dump
Ich möchte die Antwort der Janken-App wissen
Ich möchte den Namen des Posters des Kommentars anzeigen
Ich möchte die Bildlaufposition von UITableView zurückgeben!
[Rails] [Bootstrap] Ich möchte die Schriftgröße entsprechend ändern
(´-`) .. oO (Ich möchte die Standardausgabe" Hallo "leicht finden.
[Ruby] Ich möchte die Reihenfolge der Hash-Tabelle umkehren
Ich möchte die Farbe des Steuerungsmenüs oben in Liferay 7 / DXP ändern
Ich möchte den Ablauf der Spring-Verarbeitungsanforderungsparameter verstehen
Die Geschichte von Collectors.groupingBy, die ich für die Nachwelt behalten möchte
Ich möchte die Eingabe begrenzen, indem ich den Zahlenbereich einschränke
Ich möchte die Standardfehlermeldung von Spring Boot steuern
Ich habe ein Tool erstellt, um den Unterschied zwischen CSV-Dateien auszugeben
Geben Sie den HTTP-Header des zu protokollierenden Google-http-Clients aus
Ausgabe des Buches "Einführung in Java"
[Ruby] Ich möchte nur das ungerade Zeichen in der Zeichenfolge ausgeben
[Ruby] Ich möchte nur den Wert des Hash und nur den Schlüssel extrahieren
Ich möchte das Argument der Annotation und das Argument der aufrufenden Methode an den Aspekt übergeben
Ich möchte den Feldnamen des [Java] -Felds erhalten. (Alter Ton)
Ich möchte, dass Sie Enum # name () für den Schlüssel von SharedPreference verwenden
[Apache Camel] Einfacher Durchsatz in einem Protokoll ausgeben
Ändern Sie die Zeitzone des https-Portal-Containers in JST
Ausgabe der Verwendung der Slice-Methode
Ich möchte nach dem Dezimalpunkt abschneiden
Ich möchte den Wert in Ruby erhalten
Ich möchte den Wert von Cell unabhängig vom CellType (Apache POI) transparent erhalten.
Ich möchte den Inhalt der Anfrage sehen, ohne vier oder fünf zu sagen
Ich möchte rekursiv die Oberklasse und die Schnittstelle einer bestimmten Klasse erhalten
Format der Protokollausgabe von Tomcat selbst in Tomcat 8
Ich möchte eine Methode einer anderen Klasse aufrufen
[Java] Ich möchte die Differenz zum Datum berechnen
Ich war süchtig nach der Aufzeichnung des zugehörigen Modells
Konvertieren Sie das Array von error.full_messages in Zeichen und geben Sie es aus
Ich möchte den Bereich anhand des monatlichen Abschlusses beurteilen
Ich habe versucht, die Kapazität von Spring Boot zu reduzieren
Ich möchte den Dunkelmodus mit der SWT-App verwenden
[Rails] So ändern Sie den Spaltennamen der Tabelle
Ich möchte die Hauptmethode mit Reflektion aufrufen
[Grober Kommentar] Ich möchte die Zupfmethode heiraten
Ich möchte der Kommentarfunktion eine Löschfunktion hinzufügen
Ich möchte ausgeben, welches Zeichen eine beliebige Zeichenfolge von links erscheint
[Rails] After-Option nützlich, wenn Sie die Reihenfolge der DB-Spalten ändern möchten
Ich möchte den Pfad nach der neuen Registrierung ändern, nachdem ich mich mit mehreren Geräten angemeldet habe.
Ich möchte das in der Datenbank gespeicherte Protokoll morphologisch analysieren und in der Datenbank speichern, um Nachrichten 1 zu klassifizieren
[Active Admin] Ich möchte den Umfang der Sammlung angeben, die in select_box angezeigt werden soll