web-dev-qa-db-fra.com

Comment obtenir Java Sortie de l'enregistreur dans un fichier par défaut

Netbeans arrose pensivement Logger.getLogger (this.getClass (). GetName ()). Log (Level. [...] instructions dans des blocs catch. Maintenant, je voudrais les pointer toutes vers un fichier (et une console).

Chaque didacticiel de journalisation et moi-même indique comment obtenir un enregistreur spécifique pour sortir dans un fichier, mais je suppose qu'il existe un meilleur moyen que de corriger chaque instruction de journalisation générée automatiquement? Définition d'un gestionnaire pour une sorte d'enregistreur racine ou quelque chose?

28
Bloodboiler

J'ajoute juste ce qui suit au démarrage

Handler handler = new FileHandler("test.log", LOG_SIZE, LOG_ROTATION_COUNT);
Logger.getLogger("").addHandler(handler);

Vous pouvez spécifier vos propres valeurs pour LOG_SIZE et LOG_ROTATION_COUNT

Vous devrez peut-être ajuster le niveau de journalisation en fonction.

40
Miles D

Vous devez définir où le journal écrit dans le fichier de configuration de l'enregistreur. Par exemple, si vous utilisez log4j, un fichier log4j.xml (ou log4j.properties) contiendra ces informations.

Par exemple, voici un simple fichier log4j.xml qui se connecte directement dans un fichier (my-app.log) et dans la console:

<?xml version="1.0" encoding="UTF-8"?>
<log4j:configuration xmlns:log4j="http://jakarta.Apache.org/log4j/">

    <appender name="rolling" class="org.Apache.log4j.DailyRollingFileAppender">
        <param name="File" value="my-app.log" />
        <param name="DatePattern" value=".yyyy-MM-dd" />
        <layout class="org.Apache.log4j.PatternLayout">
            <param name="ConversionPattern"
                value="%d{yyyy-MM-dd HH:mm:ss} %-5p [%C] [IP=%X{ipAddress}] [user=%X{user}] %m%n" />
        </layout>
    </appender>

    <appender name="console" class="org.Apache.log4j.ConsoleAppender">
        <layout class="org.Apache.log4j.PatternLayout">
            <param name="ConversionPattern"
                value="%d{yyyy-MM-dd HH:mm:ss} %-5p [%C] [user=%X{user}] %m%n" />
        </layout>
    </appender>

    <root>
        <priority value="info" />
        <appender-ref ref="console" />
        <appender-ref ref="rolling" />
    </root>

</log4j:configuration>
2
Romain Linsolas